我正在创建一个应用程序,它将创建一系列要执行的任务,但链条将执行任务,这取决于用户是否希望添加该作品。
例如,如果用户希望链start_boo
可能是:
def start_boo():
chain = start_foo.s() | start_bar.s() | start_baz.s()
chain()
但是,如果foo
和baz
已经启动,我们就不希望这样做;而宁愿选择像:
def start_boo(foo=True, bar=True, baz=True):
if not (foo or bar or baz):
raise Exception("At least one should be true...")
chain = None
if foo:
chain |= start_foo.s()
if bar:
chain |= start_bar.s()
if baz:
chain |= start_baz.s()
chain()
start_boo(foo=False, baz=False)
然而,由于各种原因,这不会起作用。
这样的事情是否有成语?
答案 0 :(得分:1)
成语是来自reduce
的{{1}}函数。您可以执行以下操作:
functools