Согласно документации для random.seed
:
Если x опущен или Нет , используется текущее системное время; текущее системное время также используется для инициализации генератора при первом импорте модуля. Если источники случайности предоставляются операционной системой, они используются вместо системного времени (подробности о доступности см. В функции os.urandom()
).
Если вы не передадите что-то для затравки, он попытается использовать предоставленные операционной системой источники случайности вместо времени , что всегда лучше. Это экономит вам немного работы и примерно так же хорошо, как и собирается. Относительно доступности, документы для os.urandom
говорят нам:
В UNIX-подобных системах это будет запрашивать / dev / urandom, а в Windows - CryptGenRandom.
Кросс-платформенные случайные семена - большая победа здесь; вы можете спокойно опустить семя и поверить, что оно будет достаточно случайным почти на каждой платформе, на которой вы будете использовать Python. Даже если Python возвращается к тому времени, вероятно, есть только миллисекундное окно (или меньше), чтобы угадать начальное число. Я не думаю, что у вас все равно будут проблемы с использованием текущего времени - даже тогда, это всего лишь запасной вариант.