Реализация обратного вызова в Python - передача вызываемой ссылки на текущую функцию

Я хочу реализовать шаблон Observable в Python для пары рабочих, и наткнулся на этот полезный фрагмент:

class Event(object):
    pass

class Observable(object):
    def __init__(self):
        self.callbacks = []
    def subscribe(self, callback):
        self.callbacks.append(callback)
    def fire(self, **attrs):
        e = Event()
        e.source = self
        for k, v in attrs.iteritems():
            setattr(e, k, v)
        for fn in self.callbacks:
            fn(e)

Источник: Здесь

Насколько я понимаю, для подписки мне нужно будет передать обратный вызов функции, которая будет вызываться пожар . Если вызывающая функция была методом класса , предположительно, я мог бы использовать self , но в отсутствие этого - как я могу напрямую получить обратный вызов, который может быть полезен для бита self.callbacks.append (callback) ?

32
задан Community 23 May 2017 в 12:17
поделиться