2017-02-01 5 views
2

Я столкнулся с этим нечетным поведением, когда я использую функцию UUID() из модуля python uuid, чтобы проверить одну из наших тестовых uuids.Проверка UUID с использованием изменений модуля UUID python UUID

from uuid import UUID uuid1 = UUID('00000000-0000-0000-0000-000000000000', version=1) print uuid1 00000000-0000-1000-8000-000000000000

без версии он работает, как ожидалось uuid0 = UUID('00000000-0000-0000-0000-000000000000') print uuid0 00000000-0000-0000-0000-000000000000

Является ли это ожидаемый behavour? Есть ли другие побочные эффекты, о которых мне нужно беспокоиться?

Есть ли более безопасный или лучший способ проверить uuids в python? Я должен использовать вместо функции UUID(), или я злоупотребляю этой функцией?

ответ

2

От кода комментария

The 'version' argument is optional; if given, the resulting 
     UUID will have its variant and version set according to RFC 4122, 
     overriding the given 'hex', 'bytes', 'bytes_le', 'fields', or 'int'. 

RFC versions

Для генерации UUID вы можете использовать одну из следующих функций в зависимости от UUID типа

uuid1(), uuid3(), uuid4(), uuid5() 

И, как вы уже знаете, UUID() для разбора UUID на объект

Python Docs

+0

Благодарим Вас за отправку комментария! Я тестировал другие версии и читал RFC, и поэтому подозревал что-то вроде этого, но не просмотрел код. Я был бы счастливее, если бы он не выполнил чек с помощью «ValueError», как и для другого неправильного форматирования, но, увы. – michaelcoyote

Смежные вопросы