我想在Python中为几个工作人员实现Observable
模式,并遇到了这个有用的片段:
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)
来源:Here
据我所知,为了subscribe
,我需要将回调传递给将在fire
上调用的函数。如果调用函数是一个class
方法,我可能已经使用了self
,但是如果没有这个方法,我怎么能直接得到对self.callbacks.append(callback)
位有用的回调呢?
任何定义的函数都可以通过简单地使用其名称来传递,而无需在末尾添加用于调用它的
()
:其他示例用法:
相关问题 更多 >
编程相关推荐