usar una resueltos poo otro otra metodos metodo llamar instancia importar herencia ejercicios dentro como clases clase python

python - resueltos - Cómo llamar dinámicamente a los métodos dentro de una clase usando la asignación de nombre de método a una variable



llamar una clase dentro de otra clase python (2)

Esta pregunta ya tiene una respuesta aquí:

class MyClass: def __init__(self, i): self.i = i def get(self): func_name = ''function'' + self.i self.func_name() # <-- this does NOT work. def function1(self): //do something def function2(self): //do something

Error que recibo: TypeError: el objeto ''str'' no se puede llamar

¿Podría alguien ayudar con esto? He intentado un montón de permutaciones y combinaciones, pero sin éxito! (nota: ''self.func_name'' tampoco funciona)


Dos cosas:

  1. En linea 8 uso,

    func_name = ''function'' + str (self.i)

  2. Definir una cadena para la asignación de funciones como,

    self.func_options = {''function1'': self.function1, ''function2'': self.function2 }

  3. Así que debería verse como:

    clase MyClass:

    def __init__(self, i): self.i = i self.func_options = {''function1'': self.function1, ''function2'': self.function2 } def get(self): func_name = ''function'' + str(self.i) func = self.func_options[func_name] func() # <-- this does NOT work. def function1(self): //do something def function2(self): //do something


def get(self): def func_not_found(): # just in case we dont have the function print "No Function "+self.i+" Found!" func_name = ''function'' + self.i func = getattr(self,func_name,func_not_found) func() # <-- this should work!