Python 如何替换选择策略?

Python 如何替换选择策略?,python,python-hypothesis,Python,Python Hypothesis,我更新了Python假设,似乎choices()现在已经被弃用了 文档对数据()和采样自(),做了一些手工操作,但不清楚如何使用这些来代替选项() 我的代码如下所示: @precondition(lambda self: not self.flash_light.crossed) @rule(choice=st.choices) def make_forward_move(self, choice): persons = [x for x in self.persons if not x

我更新了Python假设,似乎
choices()
现在已经被弃用了

文档对
数据()
采样自()
,做了一些手工操作,但不清楚如何使用这些来代替
选项()

我的代码如下所示:

@precondition(lambda self: not self.flash_light.crossed)
@rule(choice=st.choices)
def make_forward_move(self, choice):
    persons = [x for x in self.persons if not x.crossed]
    pers1 = choice(persons)
    persons.remove(pers1)
    pers2 = choice(persons)

我通过反复试验找到了这个。所需的改变是:

@rule(data=st.data())
...
  ...
   pers1 = data.draw(st.sampled_from(persons))

我的代码在运行方式上仍然存在一些细微的差异,但这些变化足以让它运行。

您使用的是什么版本的假设
choice()
在3.15.0中被弃用,取而代之的是
data()
。是。。我用的是一个旧版本,它坏了。如何迁移以使用data()?你能告诉我怎么修改代码吗?很遗憾,我不知道。我所能做的就是推荐这一部分的文档@TylerH谢谢。我能够通过反复试验使其正常工作,并发布了一个答案。为了与生态系统的其他部分保持一致,我们建议将参数命名为
data
。祝贺你的更新;我能问一下是什么原因导致的吗?我更新了virtualenv,所有内容都成为了最新版本。@ZacHatfield Dodds你是python假设维护者吗?(我只是问,因为你说“我们”,但在你的个人资料或评论中没有任何暗示)。@ZacHatfield Dodds建议被接受。@TylerH-我是,现在我也更新了我的个人资料:-)