特质列表处理程序不响应=列表扩展

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()代替=.

上一篇:nodejs关于前后端图片上传的思路


下一篇:stl源码剖析-迭代器概念与traits编程技法