Сообщить об ошибке.

Функция uuid4() модуля uuid в Python

Создание случайного уникального индификатора UUID

Синтаксис:

import uuid

uuid.uuid4()

Параметры:

  • нет.

Возвращаемое значение:

Описание:

Функция uuid4() модуля uuid генерирует случайный UUID и возвращает объект UUID. Для преобразования объекта UUID в строку используйте встроенную функцию str().

Иногда значения UUID на основе хоста и пространства имен не являются достаточно разными. Например, в случаях, когда UUID предназначен для использования в качестве хеш-ключа, желательно использовать более случайную последовательность значений с большей дифференциацией, чтобы избежать коллизий в хеш-таблице. Наличие значений с меньшим количеством общих цифр также облегчает их поиск в файлах журналов.

Чтобы добавить большую дифференциацию в UUID используйте uuid.uuid4() для их генерации с использованием случайных входных значений.

Источник случайности зависит от того, какие библиотеки языка C доступны при импорте модуля uuid. Если библиотеки libuuid или uuid.dll могут быть загружены, то они будут использоваться для генерации случайных значений. В противном случае используются функция os.urandom() или случайный модуль.

Примеры использования:

import uuid

for i in range(5):
    print(uuid.uuid4())

# 3beeb1f1-2ec2-475e-bd38-4952f2e4235b
# 2831e77b-463d-4678-b261-cb52684db28a
# f12fa086-3655-425a-8c82-86d7c815c021
# 110695f4-292c-4bff-98de-c45d39994726
# cce70000-91d0-4f51-81a1-a7b18877b5f3

Преобразование объекта UUID в строку:

>>> import uuid
>>> uid = uuid.uuid4()
>>> uid
# UUID('4e7c09ff-f69e-45f0-8285-99f80a289320')
>>> str(uid)
# '4e7c09ff-f69e-45f0-8285-99f80a289320'

Доступ к компонентам объекта UUID. Атрибуты hex, int и urn являются различными представлениями значения UUID.

>>> import uuid
>>> uid = uuid.uuid4()
>>> uid.bytes
# b'\x14)\xfe\xc4&\xc9@P\xb6x\xccm\xf2\x0es+'
>>> uid.hex
# '1429fec426c94050b678cc6df20e732b'
>>> uid.int
# 26802611359661153894240309005953954603
>>> uid.urn
# 'urn:uuid:1429fec4-26c9-4050-b678-cc6df20e732b'
>>> uid.variant
# 'specified in RFC 4122'
>>> uid.version
# 4
>>> uid.fields
# (338296516, 9929, 16464, 182, 120, 224772584534827)
>>> uid.time_low
# 338296516
>>> uid.time_mid
# 9929
>>> uid.time_hi_version
# 16464
>>> uid.clock_seq_hi_variant
# 182
>>> uid.clock_seq_low
# 120
>>> uid.time
# 22560643205430980
>>> uid.clock_seq
# 13944