20.15. uuid — RFC 4122に準拠したUUIDオブジェクト—Pythonドキュメント
20.15。 uuid — RFC4122に準拠したUUIDオブジェクト
バージョン2.5の新機能。
このモジュールは、不変の UUID オブジェクト( UUID クラス)と関数 uuid1()、 uuid3()、 uuid4を提供します。 ()、 uuid5()は、 RFC 4122 で指定されているバージョン1、3、4、および5のUUIDを生成します。
一意のIDだけが必要な場合は、おそらく uuid1()または uuid4()を呼び出す必要があります。 uuid1()は、コンピューターのネットワークアドレスを含むUUIDを作成するため、プライバシーを侵害する可能性があることに注意してください。 uuid4()はランダムなUUIDを作成します。
- class uuid.UUID([hex[, bytes[, bytes_le[, fields[, int[, version]]]]]])
32個の16進数の文字列、 bytes 引数としてビッグエンディアン順の16バイトの文字列、 bytes_le [としてリトルエンディアン順の16バイトの文字列のいずれかからUUIDを作成します。 X197X]引数、6つの整数のタプル(32ビット time_low 、16ビット time_mid 、16ビット time_hi_version 、8ビット clock_seq_hi_variant 、8ビット clock_seq_low 、 fields 引数として48ビット node )、または intとして単一の128ビット整数引数。 16進数の文字列を指定する場合、中括弧、ハイフン、およびURNプレフィックスはすべてオプションです。 たとえば、これらの式はすべて同じUUIDを生成します。
UUID('{12345678-1234-5678-1234-567812345678}') UUID('12345678123456781234567812345678') UUID('urn:uuid:12345678-1234-5678-1234-567812345678') UUID(bytes='\x12\x34\x56\x78'*4) UUID(bytes_le='\x78\x56\x34\x12\x34\x12\x78\x56' + '\x12\x34\x56\x78\x12\x34\x56\x78') UUID(fields=(0x12345678, 0x1234, 0x5678, 0x12, 0x34, 0x567812345678)) UUID(int=0x12345678123456781234567812345678)
hex 、 bytes 、 bytes_le 、 fields 、または int のいずれかを指定する必要があります。 version 引数はオプションです。 指定された場合、結果のUUIDは、RFC 4122に従って設定されたバリアントとバージョン番号を持ち、指定された hex 、 bytes 、 bytes_le 、[X218X ] fields 、または int 。
UUID インスタンスには、次の読み取り専用属性があります。
- UUID.bytes
- 16バイト文字列としてのUUID(ビッグエンディアンバイト順の6つの整数フィールドを含む)。
- UUID.bytes_le
- 16バイト文字列としてのUUID( time_low 、 time_mid 、および time_hi_version はリトルエンディアンバイト順)。
- UUID.fields
UUIDの6つの整数フィールドのタプル。これは、6つの個別の属性および2つの派生属性としても使用できます。
分野
意味
time_low
UUIDの最初の32ビット
time_mid
UUIDの次の16ビット
time_hi_version
UUIDの次の16ビット
clock_seq_hi_variant
UUIDの次の8ビット
clock_seq_low
UUIDの次の8ビット
node
UUIDの最後の48ビット
60ビットのタイムスタンプ
clock_seq
14ビットのシーケンス番号
- UUID.hex
- 32文字の16進文字列としてのUUID。
- UUID.int
- 128ビット整数としてのUUID。
- UUID.urn
- RFC4122で指定されているURNとしてのUUID。
- UUID.variant
- UUIDの内部レイアウトを決定するUUIDバリアント。 これは、定数 RESERVED_NCS 、 RFC_4122 、 RESERVED_MICROSOFT 、または RESERVED_FUTURE のいずれかになります。
- UUID.version
- UUIDバージョン番号(1から5は、バリアントが RFC_4122 の場合にのみ意味があります)。
uuid モジュールは、次の関数を定義します。
- uuid.getnode()
- ハードウェアアドレスを48ビットの正の整数として取得します。 これを初めて実行すると、別のプログラムが起動する可能性があり、非常に時間がかかる可能性があります。 ハードウェアアドレスを取得するすべての試みが失敗した場合、RFC 4122で推奨されているように、8番目のビットが1に設定されたランダムな48ビットの数値を選択します。 「ハードウェアアドレス」とは、ネットワークインターフェースのMACアドレスを意味し、複数のネットワークインターフェースを備えたマシンでは、それらのいずれかのMACアドレスが返される場合があります。
- uuid.uuid1([node[, clock_seq]])
- ホストID、シーケンス番号、および現在の時刻からUUIDを生成します。 node が指定されていない場合、 getnode()を使用してハードウェアアドレスを取得します。 clock_seq が指定されている場合は、シーケンス番号として使用されます。 それ以外の場合は、ランダムな14ビットのシーケンス番号が選択されます。
- uuid.uuid3(namespace, name)
- 名前空間識別子(UUID)と名前(文字列)のMD5ハッシュに基づいてUUIDを生成します。
- uuid.uuid4()
- ランダムなUUIDを生成します。
- uuid.uuid5(namespace, name)
- 名前空間識別子(UUID)と名前(文字列)のSHA-1ハッシュに基づいてUUIDを生成します。
uuid モジュールは、 uuid3()または uuid5()で使用する次の名前空間識別子を定義します。
- uuid.NAMESPACE_DNS
- この名前空間を指定すると、 name 文字列は完全修飾ドメイン名になります。
- uuid.NAMESPACE_URL
- この名前空間を指定すると、 name 文字列はURLになります。
- uuid.NAMESPACE_OID
- この名前空間を指定すると、 name 文字列はISOOIDになります。
- uuid.NAMESPACE_X500
- この名前空間を指定すると、 name 文字列はDERまたはテキスト出力形式のX.500DNになります。
uuid モジュールは、variant
属性の可能な値に対して次の定数を定義します。
- uuid.RESERVED_NCS
- NCS互換性のために予約されています。
- uuid.RFC_4122
- RFC 4122 で指定されたUUIDレイアウトを指定します。
- uuid.RESERVED_MICROSOFT
- Microsoftとの互換性のために予約されています。
- uuid.RESERVED_FUTURE
- 将来の定義のために予約されています。
も参照してください
- RFC 4122 -Universally Unique IDentifier(UUID)URN名前空間
- この仕様は、UUIDのUniform Resource Name名前空間、UUIDの内部形式、およびUUIDを生成する方法を定義します。
20.15.1。 例
uuid モジュールの一般的な使用例を次に示します。
>>> import uuid
>>> # make a UUID based on the host ID and current time
>>> uuid.uuid1()
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')
>>> # make a UUID using an MD5 hash of a namespace UUID and a name
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')
>>> # make a random UUID
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')
>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')
>>> # make a UUID from a string of hex digits (braces and hyphens ignored)
>>> x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')
>>> # convert a UUID to a string of hex digits in standard form
>>> str(x)
'00010203-0405-0607-0809-0a0b0c0d0e0f'
>>> # get the raw 16 bytes of the UUID
>>> x.bytes
'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'
>>> # make a UUID from a 16-byte string
>>> uuid.UUID(bytes=x.bytes)
UUID('00010203-0405-0607-0809-0a0b0c0d0e0f')