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

Posted

技术标签:

【中文标题】如何将 Python 的随机数生成器与本地种子一起使用?【英文标题】:How to use Python's random number generator with a local seed? 【发布时间】:2016-09-18 06:25:31 【问题描述】:

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

虽然当然有很多 3rd 方模块,但有没有办法使用 Python 的标准库来获得上下文本地的随机数。

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

类似...

r = random.context(seed=42)
number = r.randint(10, 20)

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

【问题讨论】:

【参考方案1】:

From the docs:

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

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

rng = random.Random(42)
number = rng.randint(10, 20)

【讨论】:

谢谢!我期待看到这个记录更加突出,但它只是在段落中间被引用为纯文本。 - docs.python.org/3/library/random.html - 没有标题或示例代码。 我来这里是为了看一个例子,因为它不在文档中。谢谢。

以上是关于如何将 Python 的随机数生成器与本地种子一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中生成可重现(带有种子)的随机 UUID

random库:Python随机数的生成与应用

random库:Python随机数的生成与应用

哪些种子用于通用语言中的本机随机数生成器?

python的随机数生成容易重现吗?

转载python 模块 - random生成随机数模块