Python, как динамически вызвать метод из класса
Есть класс:
class Python:
def method(self, a):
pass
python_instance = Python()
Хочу сделать так:
dynamic_method = "method"
python_instance[dynamic_method]("test")
Как такое провернуть?
Ответы (2 шт):
Автор решения: GrAnd
→ Ссылка
Это довольно просто. Сначала получаем ссылку на метод экземпляра класса при помощи getattr(), а потом просто зовём этот метод по полученной ссылке.
class Python:
def method(self, a):
print(a)
python_instance = Python()
dynamic_method = "method"
getattr(python_instance, dynamic_method)("test")
Автор решения: TigerTV.ru
→ Ссылка
Можно так
class Python:
def method(self, a):
print(a)
def __getitem__(self, index):
return getattr(self, index)
ins = Python()
mymethod = "method"
ins[mymethod]("test")