2 回答
TA贡献1856条经验 获得超11个赞
与@chepner所说,我会以这种方式解决问题。
可能将函数存储在字典中,并根据计数器查找函数:
def function():
print('function 1 called')
def function2():
print('function 2 called')
counter = 0
functions = {
1: function,
2: function2
}
然后:
function_to_call = functions[counter + 1]
现在,当调用时,它将打印function_to_call()function 1 called
这就是我思考解决问题的方式。
TA贡献1780条经验 获得超4个赞
您可以按其名称调用函数,如下所示:
locals()["myfunction"]()
艺术
globals()["myfunction"]()
或者如果它来自另一个模块,如下所示:
import foo
getattr(foo, 'myfunction')()
或者,如果它适合您的用例,只需使用函数列表而不是字符串列表:
def func1():
print("1")
def func2():
print("2")
def func3():
print("3")
def func4():
print("4")
some_list=[func1, func2, func3, func4]
# call like this
for f in some_list:
f()
# or like this
some_list[0]()
添加回答
举报