Я рассматривал аналогичные вопросы о том, как создавать случайные числа в python. Пример: Similar Question - но у меня нет проблемы, что случайная функция возвращает одинаковые значения каждый раз.random.choice() возвращает одно и то же значение за одну секунду, как его избежать?
Мой случайный генератор работает нормально, проблема в том, что он возвращает то же значение при вызове функции на, что я думаю, той же самой секунды, которая нежелательна.
Мой код выглядит следующим образом
def getRandomID():
token = ''
letters = "abcdefghiklmnopqrstuvwwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
for i in range(1,36):
token = token + random.choice(letters)
return token
Как я уже говорил эта функция возвращает разные значения при их называют в в разное время, но возвращает то же значение при вызове функции одновременно. Как избежать этой проблемы?
Я использую эту функцию во внутреннем сервере для генерации уникальных идентификаторов для пользователей в интерфейсе для вставки в базу данных, поэтому я не могу контролировать временные интервалы, когда это происходит. У меня должны быть случайные токены для сопоставления пользователей в базе данных, чтобы они могли правильно вставлять их с помощью queuenumbers в базе данных.
как он возвращает тот же идентификатор, когда вызывается двумя пользователями одновременно? – Hackaholic
Я бы предложил использовать 'uuid' для генерации случайных идентификаторов пользователей. – hjpotter92
Hackaholic - точно, он возвращает тот же «токен», который является той же цепочкой случайных чисел при вызове двумя пользователями. –