У меня есть следующий класс.Вызов методов строкой
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
Вы должны поместить объекты функции в список, а не strs, и просто вызвать их. – Julian