Получите согласованный идентификатор для скрипта Python, но каждый раз разные

Мне нужна функция для генерации / возврата уникального идентификатора в скрипте Python, но она мне нужна для удовлетворения нескольких требований:

  • Должен быть разным каждый пробег
  • Должно быть одинаковым значением в пределах одного прогона, даже если:
    • Несколько классов называют это
    • Несколько потоков (xdist) в пределах одного прогона называют его
    • Все существующие ссылки на него выходят за рамки
  • Если два экземпляра сценария работают одновременно, каждый экземпляр получает свой собственный идентификатор.

Я посмотрел на пакет uuid, но каждый раз при вызове методов он возвращает разные идентификаторы. Как я могу иметь идентификатор быть последовательным на протяжении всего цикла?

1 ответ

Просто поместите идентификатор в переменную и используйте его везде.

Если ваша программа велика, и вы хотите, чтобы все могли получить к ней доступ, сделайте небольшой модуль для ее хранения, скажем, uniqid.py (или поместите его в какой-нибудь универсальный служебный модуль):

import uuid

uniqid = str(uuid.uuid4())

Тогда всякий раз, когда вам нужно ваше удостоверение личности просто

from uniqid import uniqid

print(uniqid)

Модули создаются только один раз, даже если они импортированы несколькими файлами.

Другие вопросы по тегам