Как описать класс, чтобы вызывать его м етоды через указания их имени как строки? Нужно описать класс так, чтобы методы его экземпляра вызывалиь по передачи их имени и аргументов.Что-то вроде этого: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
172 +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 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир