这时就可以使用 property 工具,它把方法包装成属性,让方法可以以属性的形式被访问和调用。
class User(BaseModel, db.Model):
"""用户"""
__tablename__ = "info_user"
id = db.Column(db.Integer, primary_key=True) # 用户编号
......
@property
def password(self):
# return AttributeError("Password can`t be read!")
return AttributeError("密码不可读!")
@password.setter
def password(self, password):
self.password_hash = generate_password_hash(password)
def check_password(self, password):
return check_password_hash(self.password_hash, password)
详情可以参考一下资料:
python(@property用法详解)
Python 中 property() 函数及 @property 装饰器的使用