Python的随机性似乎是全局性的,所以改变它的模块会相互影响.
当然有很多第三方模块,但有没有一种方法可以使用Python的标准库在上下文本地生成一个随机数.
(不使用random.get/setstate
,这在混合来自不同模块的代码时可能会有问题).
比如...
r = random.context(seed=42)
number = r.randint(10, 20)
每个模块都可以使用自己的随机上下文.
Python的随机性似乎是全局性的,所以改变它的模块会相互影响.
当然有很多第三方模块,但有没有一种方法可以使用Python的标准库在上下文本地生成一个随机数.
(不使用random.get/setstate
,这在混合来自不同模块的代码时可能会有问题).
比如...
r = random.context(seed=42)
number = r.randint(10, 20)
每个模块都可以使用自己的随机上下文.
这个模块提供的函数实际上是
random.Random
类的一个隐藏实例的绑定方法.您可以实例化自己的Random
实例,以获得不共享状态的生成器.
制作自己的random.Random
个实例并使用它.
rng = random.Random(42)
number = rng.randint(10, 20)