关于python:临时设置随机种子,如”new random()”

Set random seed temporarily, like “new Random()”

在Python中,使用某个种子而不重新输入全局状态来生成某个随机数的最佳方法是什么?在爪哇,你可以简单地写:

1
2
Random r = new Random(seed);
r.nextDouble();

标准的Math.random()不会受到影响。在Python中,我能看到的最佳解决方案是:

1
2
3
4
old_state = random.getstate()
random.seed(seed)
random.random()
random.setstate(old_state)

这是惯用的Python吗?它似乎比不需要"恢复"旧种子的Java解决方案干净得多。我很想知道有没有更好的方法。


您可以实例化自己的Random对象。

1
myrandom = random.Random(myseed)

Random模块管理自己的Random实例,该实例不受对myrandom所做更改的影响。