我经常发现自己处于这样的境地:
class A:...
B=class
a=Instance(A,())
@on_trait_change('a')##I would really like to be able to do this
def do_something(...)我认为,如果要重置整个类,则当前会触发此事件。例如b=B()。b.a=A()应该会触发它。但是,我想控制我的自定义类何时发出“已更改”的信号。如果仅仅是A的一个成员被改变了,人们可能希望A发出“已改变”的信号。例如,b.a.x+=1
发布于 2015-10-26 12:08:36
如果A和B都是从HasTraits派生出来的,那么将您的装饰器更改为@on_trait_change('a.+')就可以完成您想做的事情。如果将do_something的签名更改为两个或多个参数,甚至可以检测a的哪些属性发生了更改。(见manual/notification.html#notification-handler-signatures.)
https://stackoverflow.com/questions/33334507
复制相似问题