@IvanOne

Как заставить метод класса вернуть себя как колбэк?

Всем привет, есть такой вот код:
class WrappedClass:

    def __init__(self, name, callback):
        self.name = name
        self.callback = callback

    def run(self):
        self.callback(1, 10)


def as_action(name):

    def decorator(func):
        func.action = WrappedClass
        func.name = name
        return func
    return decorator

class MyClass:

    @as_action('name')
    def my_method(self, arg1, arg2):
        print(arg1)
        print(arg2)

if __name__ == "__main__":
    m = MyClass()
    r = m.my_method.action(m.my_method.name, m.my_method)
    r.run()


Я хочу что бы метод обернутый в декоратор as_action возвращал объект в котором оборачиваемый метод работал бы как колбэк, я не уверен что мой код делает это правильно, как можно еще решить такую задачу? Можно ли применить дескриптор в такой ситуации?
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы