如何替换选择策略?

How do I replace the choices strategy?

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

文档对 data()sampled_from() 进行了一些操作,但不清楚应该如何使用它们来代替 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))

我的代码的运行方式仍然存在一些细微差别,但这些更改足以使其达到 运行。