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?
我在这里想念什么?
谢谢!
解决方法:
这是一个错误. TraitListObject覆盖了extend()和其他变异方法以传播更改,但忽略了__iadd __().解决方法是使用extend()代替=.