Попытка воспроизвести пример в http://traitlets.readthedocs.io/en/stable/using_traitlets.html#observe,, но с использованием виджета в качестве свойства класса, поведение изменяется и не наблюдает за изменениями
from ipywidgets import Label
from traitlets import HasTraits, Unicode, observe
class Foo(HasTraits):
bar = Label()
baz = Unicode()
@observe('bar')
def _observe_bar(self, change):
print(change['old'])
print(change['new'])
f = Foo()
f.bar = Label('hello') # No printing