检测python变量值的变化

时间:2011-09-24 16:55:54

标签: python google-app-engine session global-variables onchange

在python中,是否有某种方法可以在变量值每次更改时调用一个函数?

或许像听众一样?

具体来说,我指的是这样的情况 仅共享变量  像GAE-Session这样的脚本之间。 (使用Cookie,Memcache等共享数据)

实施例: ScriptA& ScriptB,共享一个会话变量。当脚本B更改它时,SctiptA必须调用一个方法来处理该更改。

5 个答案:

答案 0 :(得分:4)

使用属性。只有可变值可以改为开始。

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

答案 1 :(得分:2)

如果变量是类属性,您可以define __setattr__ in the class

答案 2 :(得分:1)

package可能会有所帮助。

答案 3 :(得分:0)

你可能需要扩展类型" int"或"浮动",并覆盖函数" setattr",使其以您自己的方式响应。

class MyInt(int):
    ...
    def __setattr__(self, attr, val):
        ...
        super(MyInt, self).__setattr__(attr, val)
        ...

var = MyInt(5)

答案 4 :(得分:-1)

对于这种情况(我不敢相信我说的话)听起来像是塞特犬的情况

def set_myvar(x):
    my_var = x
    some_function()
    return my_var