Tengo la siguiente clase.Métodos de llamada por cadena
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
Si se crea una instancia de esta clase, se itera sobre una lista de cadenas y pide métodos dependiendo de la cadena real. Las cadenas en la lista tienen los nombres de los métodos correspondientes.
¿Cómo puedo hacer esto de una manera más elegante? No deseo agregar otra ruta elif
para cada "función" que agregue a la lista.
como nota, no llame a su lista de variables, ya que es el nombre de una función incorporada de python. Algo como 'funclist' o' flist' estaría bien;) – catchmeifyoutry
Debería poner objetos de función en la lista, en lugar de strs, y simplemente llamar a cada uno. – Julian