Python 每次更新对象时,flask sqlalchemy执行方法
每次更新类的成员时执行的方法名是什么 例如,实例化对象时会运行init: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
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)