Mam następujące klasy.Metody połączeń według łańcucha
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
Utworzenie instancji tej klasy powoduje iterację na liście łańcuchów i wywołań metod w zależności od rzeczywistego ciągu znaków. Łańcuchy na liście mają nazwy odpowiednich metod.
Jak mogę to zrobić w bardziej elegancki sposób? Nie chcę dodawać kolejnej ścieżki elif
dla każdej "funkcji" dodanej do listy.
jako zauważ, nie wywołuj swojej listy zmiennych, ponieważ jest to nazwa wbudowanej funkcji Pythona. Coś w rodzaju 'funclist' lub' flist' byłoby w porządku;) – catchmeifyoutry
Powinieneś umieścić obiekty funkcji na liście, zamiast w strs i po prostu wywołać każdy z nich. – Julian