我有一些外部對象監聽/處理另一個對象的特徵。 如何獲取該對象特徵的偵聽器/處理程序列表?我有多個對象傾聽他人的特質,我希望能夠以某種方式進行查詢並確定哪些仍處於連接狀態。獲取特徵聽衆列表 - 誰在聽我的特質?
謝謝!
下面是一個使用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
我怎麼能找出聽衆是什麼?請注意,偵聽器可以在代碼中動態添加/刪除,因此它們不會被修復。
我希望澄清一下。
什麼庫您使用?請展示一些示例或一個小例子來證明你的問題? –