Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用随机模块(python)跨越多个导入文件的唯一种子_Python_Random Seed - Fatal编程技术网

使用随机模块(python)跨越多个导入文件的唯一种子

使用随机模块(python)跨越多个导入文件的唯一种子,python,random-seed,Python,Random Seed,我有一个大的模拟,我在主文件中为随机模块设置了一个种子值(通过random.seed)。主文件导入随机模块和其他文件,这些文件也导入随机模块。当我运行模拟时,我希望将设置的种子共享给导入的文件,但由于导入的文件比主文件先执行,因此该文件中的随机模块每次都会重置种子。下面是一个可复制的示例 文件main.py: # main.py import foo import random random.seed (10) main = random.randint(1, 100) print(&qu

我有一个大的模拟,我在主文件中为随机模块设置了一个种子值(通过random.seed)。主文件导入随机模块和其他文件,这些文件也导入随机模块。当我运行模拟时,我希望将设置的种子共享给导入的文件,但由于导入的文件比主文件先执行,因此该文件中的随机模块每次都会重置种子。下面是一个可复制的示例

文件main.py:

# main.py

import foo 
import random

random.seed (10)
main = random.randint(1, 100)
print("main: ", main)
文件foo.py:

# foo.py

import random

foo = random.randint(1, 100)
print("foo:  ", foo)
当我多次执行
python main.py
时,
main
变量的值总是相同的,正如我所期望的那样。但是
foo
变量的值每次都会改变。如何在主文件中设置种子,以便在导入的文件中使用相同的种子。每次导入
random
时,它都会使用新种子创建名为
random
的类的新实例。不幸的是,这意味着您想要做的事情是不可能的,除非您直接绕过随机数生成器

您可以这样做的方法之一是:

随机导入
随机种子(123)
进口食品
foo.random=random
虽然这不会影响加载
foo
时执行的任何代码,但只有在替换
foo.random=random
后调用
foo
中的函数。它也不会传播到由
foo
完成的任何
import
s


另一种方法是定义一个帮助文件或函数,为您设置
random
,并在整个代码库中使用它-尽管这不会影响任何直接依赖
random
的库函数。

也可以看到,尽管这里没有给出解决方案。谢谢,问题是,我从用户输入中获取种子,并在设置它之前对其进行处理。因此,不可能以简单的方式为包含多个文件的Python存储库定义全局种子?如果您想使用标准库的
random
模块,则不可能。