Как описать класс, чтобы вызывать его м етоды через указания их имени как строки? Нужно описать класс так, чтобы методы его экземпляра вызывалиь по передачи их имени и аргументов.Что-то вроде этого:MyObject = Test()
a = MyObject('method_1',x,y)# вместо a = MyObject.method_1(x,y)
b = MyObject('method_2',x,y)
c = MyObject('method_3',x,y)

21 Авг 2019 в 06:58
203 +1
0
Ответы
1

Для этого можно использовать метод __getattr__ в классе и передавать имя метода в качестве строки. Вот пример кода:

class Test:
def __init__(self):
pass
def method_1(self, x, y):
return x + y
def method_2(self, x, y):
return x - y
def method_3(self, x, y):
return x * y
def __getattr__(self, name):
return getattr(self, name)
MyObject = Test()
a = MyObject('method_1', 2, 3)
b = MyObject('method_2', 5, 2)
c = MyObject('method_3', 4, 6)
print(a) # Вывод: 5
print(b) # Вывод: 3
print(c) # Вывод: 24

Таким образом, вы можете вызывать методы объекта MyObject по передаче их имени в виде строки при создании экземпляра и передаче нужных аргументов.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир