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]()
添加回答
舉報