为模仿设置全局种子

问题描述 投票:0回答:1

在 mimesis 文档/代码中,我看到

BaseProvider
以及所有提供者都有
seed
kwarg。它的文档很稀疏(据我所知),但它看起来就像 faker 一样,它设置随机化器种子,因此如果我想复制一组特定的随机数据,我可以提供相同的种子。

也就是说,我找不到如何为模仿设置全局种子。有了faker,我就能做到

Faker.seed(random_seed)

但我没有看到模仿的等价物。我也在尝试与工厂男孩一起使用它,并且与

mimesis_factory
一起使用,这更加令人困惑。

python faker
1个回答
0
投票

这在一定程度上取决于你如何使用模仿,但一般来说你用种子初始化对象。任何生成的数据每次都是相同的。

from mimesis import Generic, Field, Person

seed = 123
gen = Generic(Locale.EN, seed=seed)
field = Field(Locale.EN, seed=seed)
person = Person(Locale.EN, seed=seed)

还可以调用

.reseed(seed)
,这会影响重新开始数据生成。

seed = 123
gen = Generic(Locale.EN, seed=seed)
print(gen.person.full_name())
print(gen.person.full_name())
gen.reseed(seed)
print(gen.person.full_name())
print(gen.person.full_name())

# output
Ira Boyd
Kerstin Bryant
Ira Boyd
Kerstin Bryant
© www.soinside.com 2019 - 2024. All rights reserved.