2016-10-07 6 views
4

documentation on the uuid moduleは言う:UUIDバリアントはいつ整数ですか?

UUID.variant

UUIDの内部 レイアウトを決定UUID変異体。これは、整数定数 RESERVED_NCSの一つ、 RFC_4122RESERVED_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に)このモジュールのソースコードを、ことが起こる

私はインタプリタで見ましたが、これは完璧な意味合いがありますが、ドキュメントについても同じことは言えません。

これは簡単なドキュメントのバグですか、ドキュメントが約束しているようにこれらの属性が本当に整数であるのかどこですか?何が起きてる?

+0

ドキュメントを更新することなく、定数を過去のある時点で整数から文字列に変更したと思います。私のMercurialのスキルは、今夜は確かにそれを確認することではありません。 – chepner

+1

@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

+2

GithubのPython 2.5ブランチのオリジナルの外観は、ドキュメントのバグのようですが、これはいつもそうだったことを示しています。これを見るためにトラッカーにバグを報告しましたか? –

答えて

2

これはドキュメントのバグです。私はofficial bug trackerでそのようにそれを提出し、単語「整数」削除することで修正されました:私は、定数のタイプはここでは関係ありませんと思いますので、私は単に型の記述を削除し

を。

関連する問題