Ho la seguente classe.Metodi di chiamata per stringa
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
Se viene creata un'istanza di questa classe, si itera su una lista di stringhe e chiama i metodi a seconda della stringa effettiva. Le stringhe nella lista hanno i nomi dei metodi corrispondenti.
Come posso farlo in un modo più elegante? Non voglio aggiungere un altro elif
-path per ogni "funzione" che aggiungo alla lista.
come nota, non chiamare la tua lista di variabili, poiché è il nome di una funzione built-in python. Qualcosa come 'funclist' o' flist' andrebbe bene;) – catchmeifyoutry
Dovresti mettere gli oggetti funzione nella lista, piuttosto che gli strs, e chiamarli tutti. – Julian