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

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

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

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

类似...

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

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

【问题讨论】:

    标签: python python-3.x random


    【解决方案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 - 没有标题或示例代码。
    • 我来这里是为了看一个例子,因为它不在文档中。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-05-15
    • 2011-02-08
    • 1970-01-01
    • 2015-03-14
    • 2013-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多