documentation on the uuid
moduleは言う:UUIDバリアントはいつ整数ですか?
UUID.
variant
¶UUIDの内部 レイアウトを決定UUID変異体。これは、整数定数 RESERVED_NCSの一つ、 RFC_4122、 RESERVED_MICROSOFT、 又はRESERVED_FUTUREあろう。
以降:NCSとの互換性のために予約
uuid.
RESERVED_NCS
¶。
uuid.
RFC_4122
¶RFC 4122に与えられたUUIDレイアウトを指定します。
RESERVED_MICROSOFT
¶
uuid.
は、Microsoftの互換性のために予約されています。将来の定義のために予約
uuid.
RESERVED_FUTURE
¶。
これを考えると、私はこれらの属性にアクセスするときに整数を見ることを期待していました。しかし:
>>> import uuid
>>> u = uuid.uuid4()
>>> u.variant
'specified in RFC 4122'
>>> uuid.RESERVED_NCS
'reserved for NCS compatibility'
>>> uuid.RFC_4122
'specified in RFC 4122'
>>> uuid.RESERVED_MICROSOFT
'reserved for Microsoft compatibility'
>>> uuid.RESERVED_FUTURE
'reserved for future definition'
これは2.7.9と3.4.2で同じ結果を生成する、と私は、これらの定数は、文字列であるかもしれないことを示唆しているすべてのバージョンのドキュメントを見つけていません。結果を考えると
RESERVED_NCS, RFC_4122, RESERVED_MICROSOFT, RESERVED_FUTURE = [ 'reserved for NCS compatibility', 'specified in RFC 4122', 'reserved for Microsoft compatibility', 'reserved for future definition']
:私はこの問題に作り出すことができる最も関連性の高い検索結果がこの文が含まれています(SVNまたはGitHubに)このモジュールのソースコードを、ことが起こる
私はインタプリタで見ましたが、これは完璧な意味合いがありますが、ドキュメントについても同じことは言えません。
これは簡単なドキュメントのバグですか、ドキュメントが約束しているようにこれらの属性が本当に整数であるのかどこですか?何が起きてる?
ドキュメントを更新することなく、定数を過去のある時点で整数から文字列に変更したと思います。私のMercurialのスキルは、今夜は確かにそれを確認することではありません。 – chepner
@chepner - GitHubを見ると、[2006年8月21日コミット](https://github.com/python/cpython/commit/a9c343d0c354e0aa41674f5c84a5dc28241c7a0c)には[uuid.py](https://github.com/python /cpython/blob/a9c343d0c354e0aa41674f5c84a5dc28241c7a0c/Lib/uuid.py)を、それが今日持っている変種文字列定数の同じリストと比較し、そのrepoはそれ以上元に戻りません。 – TigerhawkT3
GithubのPython 2.5ブランチのオリジナルの外観は、ドキュメントのバグのようですが、これはいつもそうだったことを示しています。これを見るためにトラッカーにバグを報告しましたか? –