Tôi muốn thực hiện mô hình Observable
bằng Python cho một vài công nhân, và đã xem qua đoạn hữu ích này:Thực hiện một cuộc gọi lại bằng Python - đi qua một tài liệu tham khảo có thể được gọi với chức năng hiện
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)
Nguồn: Here
Khi tôi hiểu nó, để subscribe
, tôi sẽ cần phải chuyển một cuộc gọi lại đến chức năng sẽ được gọi trên fire
. Nếu hàm gọi là phương thức class
, có lẽ tôi có thể đã sử dụng self
, nhưng trong trường hợp không có điều này - làm thế nào tôi có thể trực tiếp nhận được gọi lại có thể hữu ích cho bit self.callbacks.append(callback)
?
Thiếu tham số 'tự' trong phương thức. –
Rất tiếc. Quên nó trên phương pháp dụ. Phương thức tĩnh không nhận được 'self'. – Amber
Tuyệt vời, cảm ơn bạn rất nhiều - Tôi đã vật lộn với tĩnh trong thực tế :) – malangi