我有一些外部对象监听/处理另一个对象的特征。 如何获取该对象特征的侦听器/处理程序列表?我有多个对象倾听他人的特质,我希望能够以某种方式进行查询并确定哪些仍处于连接状态。获取特征听众列表 - 谁在听我的特质?
谢谢!
下面是一个使用Enthought性状模块的示例:
from traits.api import HasTraits,Str,Int,Float
class GenerateEvents (HasTraits):
name = Str
age = Int
weight = Float
class ListenEvents (HasTraits):
def _name_changed (self, object, name, old, new):
print "_name_changed:", object, name, old, new
def _age_changed (self, object, name, old, new):
print "_age_changed:", object, name, old, new
def _weight_changed (self, object, name, old, new):
print "_weight_changed:", object, name, old, new
class AnotherListenEvents (HasTraits):
def _name_changed (self, object, name, old, new):
print "Another _name_changed:", object, name, old, new
def _age_changed (self, object, name, old, new):
print "another _age_changed:", object, name, old, new
def _weight_changed (self, object, name, old, new):
print "another _weight_changed:", object, name, old, new
ge = GenerateEvents()
le = ListenEvents()
ale = AnotherListenEvents()
ge.set(name = 'Joe', age = 22, weight = 152.0)
ge.add_trait_listener(le)
ge.add_trait_listener(ale)
ge.set(name = 'Mike', age = 34, weight = 178.0)
注意ge
有两个监听器,le
和ale
。但是,由于ge
我怎么能找出听众是什么?请注意,侦听器可以在代码中动态添加/删除,因此它们不会被修复。
我希望澄清一下。
什么库您使用?请展示一些示例或一个小例子来证明你的问题? –