traits api创建新特征和特征改变了行为

时间:2015-10-25 20:06:29

标签: python enthought traitsui

我经常发现自己处于这种状况:

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()应该触发它。但我希望控制我的自定义课程何时发出信号已经改变了#39;每个人都可能希望A发出信号并改变信息。如果仅仅改变A的成员,例如b.a.x + = 1

1 个答案:

答案 0 :(得分:2)

如果AB都来自HasTraits,那么将装饰器更改为@on_trait_change('a.+')即可。如果您将do_something的签名更改为两个或更多参数,您甚至可以检测a的哪些属性已更改。 (见http://traits.readthedocs.org/en/latest/traits_user_manual/notification.html#notification-handler-signatures。)

相关问题