import uuid uuid.uuid1(node=None, clock_seq=None)
node=None
- аппаратный адрес хоста,clock_seq=None
- порядкового номера текущего времени.Функция uuid1()
модуля uuid
создает UUID из идентификатора хоста node
и порядкового номера текущего времени clock_seq
. Функция возвращает объект UUID
.
Для преобразования объекта UUID
в строку используйте встроенную функцию str()
.
node
не указан, то используется функция uuid.getnode()
для получения аппаратного адреса. clock_seq
, оно используется в качестве порядкового номера. В противном случае выбирается случайный 14-битный порядковый номер.Из-за компонента времени каждый вызов uuid.uuid1()
возвращает новое значение. В выходных данных изменяется только компонент времени в начале строки до первого дефиса.
>>> import uuid >>> for i in range(3): ... print(uuid.uuid1()) ... # 699d54ae-8b6f-11ea-8f75-f4939ff850e4 # 699d54af-8b6f-11ea-8f75-f4939ff850e4 # 699d54b0-8b6f-11ea-8f75-f4939ff850e4
Поскольку у каждого компьютера свой MAC-адрес, выполнение uuid.uuid1() в разных системах приведет к совершенно разным значениям.
В следующем примере передаются явные идентификаторы узлов для имитации работы на разных хостах.
>>> import uuid >>> for node in [0x1ec200d9e0, 0x1e5274040e]: ... print(uuid.uuid1(node)) ... # f5db131a-8b6f-11ea-abe8-001ec200d9e0 # f5db15b8-8b6f-11ea-8001-001e5274040e
К компонентам возвращенного объекта UUID
можно получить доступ через атрибуты экземпляра, они доступны только для чтения. Некоторые атрибуты, такие как hex
, int
и urn
, являются различными представлениями значения UUID.
>>> import uuid >>> uid = uuid.uuid1() >>> uid UUID('20aa1168-8b7b-11ea-8f75-f4939ff850e4') # Преобразование объекта `UUID` в строку >>> str(uid) # '20aa1168-8b7b-11ea-8f75-f4939ff850e4' >>> uid.bytes # b' \xaa\x11h\x8bq\x11\xea\x8fu\xf4\x93\x9f\xf8P\xe4' >>> uid.hex # '20aa11688b7111ea8f75f4939ff850e4' >>> uid.int # 43418339414915501781549504252851278052 >>> uid.urn # 'urn:uuid:20aa1168-8b71-11ea-8f75-f4939ff850e4' >>> uid.variant # 'specified in RFC 4122' >>> uid.version # 1 >>> uid.fields # (548016488, 35697, 4586, 143, 117, 268914881220836) >>> uid.time_low # 548016488 >>> uid.time_mid # 35697 >>> uid.time_hi_version # 4586 >>> uid.clock_seq_hi_variant # 143 >>> uid.clock_seq_low # 117 >>> uid.time # 138076056583803240 >>> uid.clock_seq # 3957