当对象的任何属性随RxPy变化时触发函数

时间:2016-09-28 06:41:55

标签: python-3.x reactive-programming rx-py

在RxPy中,提到here的.NET框架中是否有类似于INotifyPropertyChanged的内容?我正在尝试向对象添加一个观察者,以便对象的任何属性发生变化,将调用一个函数。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

class A(object):
    def __init__(self):
        self._my_attr = None
        self.property_changed = Subject()
    ...
    @property
    def my_attr(self):
        return self._my_attr

    @my_attr.setter
    def my_attr(self, value):
        if value != self._my_attr:
            self._my_attr = value
            self.property_changed.on_next(('my_attr', value))

a = A()
a.property_changed.subscribe(print)
a.my_attr = 1
a.my_attr = 3