如何使用Python的随机数生成器与本地种子?

ide*_*n42 8 python random python-3.x

Python的随机似乎是全局的,因此更改它的模块将相互影响.

虽然当然有许多第三方模块,但有没有办法使用Python的标准库在上下文中包含一个本地随机数.

(不使用random.get/setstate,在混合来自不同模块的代码时可能会出现问题).

就像是...

r = random.context(seed=42)
number = r.randint(10, 20)
Run Code Online (Sandbox Code Playgroud)

每个模块可以使用自己的随机上下文.

use*_*ica 13

来自文档:

此模块提供的函数实际上是random.Random类的隐藏实例的绑定方法.您可以实例化自己的实例Random以获取不共享状态的生成器.

制作自己的random.Random实例并使用它.

rng = random.Random(42)
number = rng.randint(10, 20)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!我希望看到这个文档更突出,但它只在段落中间引用为纯文本. - https://docs.python.org/3/library/random.html - 没有标题或示例代码. (2认同)
  • 我来这里是为了看一个例子,因为它不在文档中。谢谢。 (2认同)