from traits.api import List, HasTraits
class Foo(HasTraits):
x = List
def _x_items_changed(self,new):
print new.added
f = Foo()
f.x = [1,3]
f.x.append(9) #handler reacts!
f.x += [9,10] # handler does not react! Why?
我在这里缺少什么?
谢谢!
答案 0 :(得分:4)
这是一个错误。 TraitListObject
会覆盖extend()
和其他变异方法来传播更改,但__iadd__()
被忽略了。解决方法是使用extend()
代替+=
。