ваш self.func_list
должен быть:
self.func_list= [('func1','print_func1'),('func2','print_func2')]
И то, как написан ваш код, будет, конечно, печатать 'Func Name'
. Я полагаю, вы, вероятно, хотели передать туда func[0]
.
Рабочий пример:
>>> class myStringMethod():
def __init__(self):
self.func_list= [('func1','print_func1'),('func2','print_func2')]
def print_func1(self, name):
print(name)
def print_func2(self, name):
print(name)
def call_func_by_name(self):
for func in self.func_list:
getattr(self, func[1])('Func Name')
>>> myStringMethod().call_func_by_name()
Func Name
Func Name