函数是Python中的一流对象,因此您可以使用字典进行分派。例如,iffoo
和bar
是函数,并且dispatcher
is像这样的字典。
dispatcher = {'foo': foo, 'bar': bar}
请注意,值arefoo
和bar
are是函数对象,而NOTfoo()
和bar()
。
打电话foo
,你可以做dispatcher['foo']()
编辑:如果您要运行列表中存储的 多个 功能,则可以执行以下操作。
dispatcher = {'foobar': [foo, bar], 'bazcat': [baz, cat]}
def fire_all(func_list):
for f in func_list:
f()
fire_all(dispatcher['foobar'])