检测Python变量值的变化
有没有什么方法可以在Python中,每次一个变量的值改变时调用一个函数呢?
就像一个监听器那样,可能吗?
具体来说,我指的是那种情况,只有变量在不同脚本之间共享,就像GAE会话那样。(它使用Cookies、Memcache等来共享数据)
举个例子:脚本A和脚本B共享一个会话变量。当脚本B改变这个变量时,脚本A需要调用一个方法来处理这个变化。
4 个回答
0
你可能需要扩展“int”或“float”这两种类型,然后重写“setattr”这个函数,让它按照你自己的方式来响应。
class MyInt(int):
...
def __setattr__(self, attr, val):
...
super(MyInt, self).__setattr__(attr, val)
...
var = MyInt(5)
3
如果这个变量是一个类的属性,你可以在这个类里面定义一个叫做 __setattr__
的方法。
6
使用属性。只有可变的值才能一开始就发生变化。
class Something(object):
@property
def some_value(self):
return self._actual
@some_value.setter
def some_value(self, value):
print ("some_value changed to", value)
self._actual = value