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
błąd, który pojawia się: TypeError: „str” obiektu nie jest wpłaconeJak dynamicznie wywołać metody klasy przy użyciu metody-name przypisanie do zmiennej
Czy ktoś proszę mi pomóc z tym. Próbowałem wielu permutacji i kombinacji, ale bez skutku! (Uwaga: 'self.func_name' też nie działa)
zależności od użytkowania, może być lepiej, albo z listy/dict funkcji lub przy użyciu funkcji lambda przekazuje dodatkowy argument do funkcji (ten drugi jest głównie przydatny w przypadku wywołań zwrotnych). – sapi
To nie jest kod, którego dotyczy ten błąd. kiedy robisz 'self.func_name', nie masz dostępu do lokalnej zmiennej' func_name'. Próbujesz uzyskać dostęp do zmiennej instancji o nazwie 'nazwa klasy' wewnątrz' self' - ale taka zmienna nie istnieje. – Elazar
@Elazar tak, mój błąd. Przetłumaczyłem kod i tęskniłem za tym. –