我有以下類。按字符串調用方法
func_list= ["function1", "function2", "function3"]
class doit(object):
def __init__(self):
for item in func_list:
if item == "function1":
self.function1()
elif item == "function2":
self.function2()
elif item == "function3":
self.function3()
def function1(self):
#do this
pass
def function2(self):
#do that
pass
def function3(self):
pass
如果創建了此類的一個實例,它會遍歷字符串列表並根據實際字符串調用方法。列表中的字符串具有相應方法的名稱。
我該如何以更優雅的方式做到這一點? 我不想爲添加到列表中的每個「功能」添加另一個elif
-path。
作爲注意,不要調用你的變量列表,因爲它是一個python內建函數的名字。像funclist或flist這樣的東西就可以了;) – catchmeifyoutry 2012-07-25 12:51:43
你應該把函數對象放在列表中而不是strs中,然後調用每一個。 – Julian 2012-07-25 13:31:11