我正在尝试为python建立用户模型。我必须使用SQL_Alchemy ORM将值插入数据库中。为此,我定义了一个类User
,它具有属性id,first_name,second_name,last_name,email etc
。该类继承了db.Model,并且相应地映射了属性和对话。该类的实现如下:
class Users(db.Model):
__tablename__ = 'users'
id = db.Coloumn('id',db.Integer,primary_key=True)
first_name = db.Coloumn('first_name',db.String)
second_name = db.Coloumn('second_name',db.String)
last_name = db.Coloumn('last_name',db.String)
email = db.Coloumn('email',db.String)
password = db.Coloumn('password',db.String)
我想实现一个方法名称insert(),该方法以值作为参数并将其动态映射到类属性。
目前,我已经通过以下方式实现了它:
def insert(self,first_name,second_name,last_name,email,password):
self.first_name = first_name
self.second_name = second_name
self.last_name = last_name
self.email = email
self.password = password
我想以字典值作为kwargument的方式实现该方法,并将其相应地映射到class属性。
例如,方法应声明为
insert(self,**kwargs):
答案 0 :(得分:3)
有两种方法。更详细地说:
def insert(self, **kwargs):
for k, v in kwargs.items():
setattr(self, k, v)
或更简洁地说:
def insert(self, **kwargs):
self.__dict__.update(kwargs)
后者不适用于实例不具有__dict__
的类,例如定义__slots__
的类