Как описать класс, чтобы вызывать его м етоды через указания их имени как строки? Нужно описать класс так, чтобы методы его экземпляра вызывалиь по передачи их имени и аргументов.Что-то вроде этого: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)
Для этого можно использовать метод __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 по передаче их имени в виде строки при создании экземпляра и передаче нужных аргументов.