rga*_*ama 7 python random seed globals
我有一个包含不同主文件的项目(针对不同的模拟).当我运行其中一个主文件时,它应该将种子设置为随机(和numpy.random),并且项目中的所有模块都应该使用该种子.
我找不到一个很好的方法来做到这一点.我有一个文件globals.py与此:
import random
myRandom=None
def initSeed(seed):
global myRandom
myRandom =random.Random(seed)
Run Code Online (Sandbox Code Playgroud)
然后从一个主要的我做:
if __name__ == "__main__":
seed=10
globals.initSeed(seed)
...
Run Code Online (Sandbox Code Playgroud)
然后在主要调用的模块中,我做:
from globals import myRandom
Run Code Online (Sandbox Code Playgroud)
但myRandom在模块中的值为None(即使我在main中修改了它!).为什么,以及如何解决它?有更好的方法吗?
正如@jDo 在评论中提到的,重命名globals.py为randGlobal.py.
添加了用于测试的模块testResult.py。
import random
def initSeed(seed):
# declare
global myRandom
myRandom = random.Random(seed)
Run Code Online (Sandbox Code Playgroud)
import randGlobal
def randOutput():
return randGlobal.myRandom.random()
Run Code Online (Sandbox Code Playgroud)
import randGlobal
# Add a module for testing
import testResult
def test():
result = testResult.randOutput()
print result
# main
if __name__ == "__main__":
seed=10
randGlobal.initSeed(seed)
# after init, hava a test
test()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2056 次 |
| 最近记录: |