【发布时间】:2012-07-25 12:35:49
【问题描述】:
我有以下课程。
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之类的就可以了;) -
你应该把函数对象放在列表中,而不是strs中,然后调用每个对象。
标签: python python-2.5