标签:
uuid模块在Python 2.5以后引入,接口包括:不可变对象UUID(UUID类)和函数uuid1()、uuid3()、uuid4()和uuid5(),后面的四个函数用于生成 RFC 4122 规范中指定的第1、3、4、5版UUID。使用uuid1()或uuid4()可以获得一个唯一的ID,uuid1()包含了主机的网络名称,uuid4()不涉及网络主机名,仅生成一个随机UUID,因此从隐私保护角度uuid4()更加安全。
class uuid.UUID([hex[, bytes[, bytes_le[, fields[, int[, version]]]]]])
该类用于从参数给定的内容中实例化UUID对象(hex, bytes, bytes_le, fields, int 必须且只能指定一个):
hex:以32个16字符的形式创建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)
UUID对象含有以下只读属性
UUID.bytes
以16字节串形式表示的UUID,包含6个大端字节序的整数域;
>>> u.bytes ‘\x124Vx\x124Vx\x124Vx\x124Vx‘
UUID.bytes_le
以16字节串形式表示的UUID,包含6个小端字节序的整数域;
>>> u.bytes_le ‘xV4\x124\x12xV\x124Vx\x124Vx‘
域 | 含义 |
time_low | UUID的初始32位 |
time_mid | 接前一域的16位 |
time_hi_version | 接前一域的16位 |
clock_seq_hi_variant | 接前一域的8位 |
clock_seq_low | 接前一域的8位 |
node | UUID的最后48位 |
time | UUID的总长60位的时间戳 |
clock_seq | 14位的序列号 |
>>> u.fields (305419896L, 4660L, 22136L, 18L, 52L, 95073701484152L)
>>> u.hex ‘12345678123456781234567812345678‘
>>> u.int 24197857161011715162171839636988778104L
>>> u.urn ‘urn:uuid:12345678-1234-5678-1234-567812345678‘
>>> u.variant ‘reserved for NCS compatibility‘
>>> u.version >>>
这里由于u.variant == ‘reserved for NCS compatibility‘,所以此处u.version为空。
>>> uuid.getnode() 152667293855L
>>> uuid.uuid1() UUID(‘a89e9d00-a710-11e4-a84a-00238bae089f‘)
>>> uuid4() UUID(‘b9f9fb88-49f3-4cea-9885-19e57c3572c6‘)
>>> 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‘
标签:
原文地址:http://www.cnblogs.com/Security-Darren/p/4252868.html