class uuid.UUID([hex[, bytes[, bytes_le[, fields[, int[, version]]]]]])
该类用于从参数给定的内容中实例化UUID对象(hex, bytes, bytes_le, fields, int 必须且只能指定一个): hex:指定32个字符以创建UUID对象,当指定一个32个字符构成的字符串来创建一个UUID对象时,花括号、连字符和URN前缀等都是可选的; bytes:指定一个大端字节序的总长16字节的字节串来创建UUID对象; bytes_le:指定一个小端字节序的总长16字节的字节串来创建UUID对象; fields:指定6个整数域,共计128位来创建UUID(其中,32位作为time_low段,16位作为time_mid段,16位作为time_hi_version段,8位作为clock_seq_hi_variant段,8位作为clock_seq_low段,48位作为node段); int:直接指定一个长度为128个二进制位的整数用于创建UUID对象; version:(可选)指定UUID的版本,从1到5,一旦指定了该参数,生成的UUID将具有自己的变体(variant)和版本数,具体请参考RFC 4122,
例.
下面的各种方法创建相同的UUID对象,
u = UUID('{12345678-1234-5678-1234-567812345678}')
u = UUID(hex = '12345678123456781234567812345678')
u = UUID('urn:uuid:12345678-1234-5678-1234-567812345678')
u = UUID(bytes='\x12\x34\x56\x78'*4)
u = UUID(bytes_le='\x78\x56\x34\x12\x34\x12\x78\x56' +
'\x12\x34\x56\x78\x12\x34\x56\x78')
u = UUID(fields=(0x12345678, 0x1234, 0x5678, 0x12, 0x34, 0x567812345678))
u = UUID(int=0x12345678123456781234567812345678)
>>> uuid4()
UUID('b9f9fb88-49f3-4cea-9885-19e57c3572c6')
uuid.uuid5(namespace, name) 基于命名空间标识符(实质上是一个UUID)和一个名称(实质上是一个字符串)的SHA-1哈希值生成UUID 关于uuid3()和uuid5()中提到的命名空间标识符,uuid模块定义了如下的备选项 uuid.NAMESPACE_DNS 当指定该命名空间时,参数 name 是一个完全限定的(fully-qualified)域名 uuid.NAMESPACE_URL 当指定该命名空间时,参数 name 是一个URL uuid.NAMESPACE_OID 当指定该命名空间时,参数 name 是一个ISO OID uuid.NAMESPACE_X500 当指定该命名空间时,参数 name 是一个DER格式或文本格式的X.500 DN。关于属性variant,uuid模块定义了如下的常量 uuid.RESERVED_NCS 该常量为兼容NCS而保留; uuid.RFC_4122 按照 RFC 4122 的规定来确定UUID的布局; uuid.RESERVED_MICROSOFT 该常量位兼容微软而保留 uuid.RESERVED_FUTURE 该常量为未来可能的定义保留可以在Python中查看这些常量:
>>> 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'