Necesito asegurarme de que toda la aleatoriedad en mi programa sea completamente replicable. ¿Dónde debo hacer una llamada a random.seed()?python 3: random.seed(): ¿dónde llamarlo?
Pensé que debería estar en mi módulo main.py
, pero importa otros módulos que usan funciones aleatorias.
Puedo navegar cuidadosamente a través de mis importaciones para ver cuál es la primera en ejecutar, pero en el momento en que cambie la estructura de mi código tendré que recordar volver a hacer este análisis.
¿Existe alguna solución simple y segura?
¿Le preocupa que los módulos que usan funciones aleatorias alteren la replicabilidad? Siempre que no usen random.seed() ellos mismos, debería estar bien. Si esa no es tu preocupación, ¿por qué estás preocupado por lo que hacen tus módulos? –
¿Está diciendo que no tiene una función 'principal()' de nivel superior que hace el trabajo real de la aplicación? Por qué no? –
@Josh @S Lott: Tengo 'main'; comienza diciendo: 'import random',' import another module', 'random.random.seed()'. Es solo que 'anothermodule' pasa a 'import random' y usa funciones de 'random', por lo que mi siembra ocurre un poco tarde. – max