@Verriant

Как описать класс, чтобы вызывать его м етоды через указания их имени как строки?

Нужно описать класс так, чтобы методы его экземпляра вызывалиь по передачи их имени и аргументов.Что-то вроде этого:

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)
  • Вопрос задан
  • 119 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
class Test:
    def __call__(self, name, *args, **kwargs):
        method = getattr(self, name)
        return method(*args, **kwargs)

    def method_1(self, x, y)
        return x + y

    ...

P.S. Соблюдайте PEP8, в Python принята snake case нотация.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы