Python のランダムシードのスコープは何ですか? 質問する

Python のランダムシードのスコープは何ですか? 質問する

random.seed(my_seed)モジュール内の 1 つのクラスでPython 関数を使用する場合、このシードはこのモジュールでインスタンス化される他のすべてのクラスに残りますか?

ベストアンサー1

はい、シードはRandom()モジュール内の(隠し)グローバルインスタンスに設定されています。ドキュメンテーション:

このモジュールによって提供される関数は、実際にはrandom.Randomクラスの隠しインスタンスのバインドされたメソッドです。 の独自のインスタンスをインスタンス化しRandomて、状態を共有しないジェネレーターを取得できます。

Random()シードを別々に保つ必要がある場合は、別々のインスタンスを使用します。インスタンス化するときに新しいシードを渡すことができます。

>>> from random import Random
>>> myRandom = Random(anewseed)
>>> randomvalue = myRandom.randint(0, 10)

クラスはモジュールと同じインターフェースをサポートします。

おすすめ記事