Python 每次更新对象时,flask sqlalchemy执行方法

Python 每次更新对象时,flask sqlalchemy执行方法,python,sqlalchemy,flask,flask-sqlalchemy,Python,Sqlalchemy,Flask,Flask Sqlalchemy,每次更新类的成员时执行的方法名是什么 例如,实例化对象时会运行init: class Foo(db.Model) id = db.Column(db.Integer, primary_key=True) description = db.Column(db.String(50)) def __init__(self, description): self.description = description 我想向这个类添加一个方法,该方法在每次更新Fo

每次更新类的成员时执行的方法名是什么

例如,实例化对象时会运行init

class Foo(db.Model)
    id = db.Column(db.Integer, primary_key=True)
    description = db.Column(db.String(50))

    def __init__(self, description):
        self.description = description
我想向这个类添加一个方法,该方法在每次更新Foo对象时运行

在这里阅读python类之后:

我认为我正在寻找的方法看起来像下面这样(但还没有开始工作):


谢谢你的帮助

\uuuuu call\uuuuu
用于使对象的实例可调用,就像函数:

class Foo(object):
    def __init__(self, foo):
        self.foo = foo

    def __call__(self):
        return 'foo is {}!'.format(self.foo)

foo = Foo('bar')
print foo()    # Note that we're calling instance of Foo as if it was a function.
您可能需要的是
\uuuu setattr\uuuu
,当为对象的属性指定值时,会调用该函数:

class Foo(db.Model):
    # ...

    def __setattr__(self, name, value):
        # Call the parent class method first.
        super(Foo, self).__setattr__(name, value)
        print 'Value {!r} was assigned to attribute {}'.format(value, name)

您的意思是在数据库中更新(因为flask sqlalchemy标记而询问)还是仅仅是类属性?
class Foo(db.Model):
    # ...

    def __setattr__(self, name, value):
        # Call the parent class method first.
        super(Foo, self).__setattr__(name, value)
        print 'Value {!r} was assigned to attribute {}'.format(value, name)