在 mimesis 文档/代码中,我看到
BaseProvider
以及所有提供者都有 seed
kwarg。它的文档很稀疏(据我所知),但它看起来就像 faker 一样,它设置随机化器种子,因此如果我想复制一组特定的随机数据,我可以提供相同的种子。
也就是说,我找不到如何为模仿设置全局种子。有了faker,我就能做到
Faker.seed(random_seed)
但我没有看到模仿的等价物。我也在尝试与工厂男孩一起使用它,并且与
mimesis_factory
一起使用,这更加令人困惑。
这在一定程度上取决于你如何使用模仿,但一般来说你用种子初始化对象。任何生成的数据每次都是相同的。
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