Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何动态访问python类属性?_Python_Sqlalchemy - Fatal编程技术网

如何动态访问python类属性?

如何动态访问python类属性?,python,sqlalchemy,Python,Sqlalchemy,我正在尝试为python构建一个用户模型。我必须使用SQL\u Alchemy ORM将值插入数据库。为此,我定义了一个类User,它具有属性id、名字、姓氏、电子邮件等。该类继承db.Model,并相应地映射attirbutes和Columns。该类的实现如下所示: class Users(db.Model): __tablename__ = 'users' id = db.Coloumn('id',db.Integer,primary_key=True) first_

我正在尝试为python构建一个用户模型。我必须使用SQL\u Alchemy ORM将值插入数据库。为此,我定义了一个类
User
,它具有属性
id、名字、姓氏、电子邮件等。该类继承db.Model,并相应地映射attirbutes和Columns。该类的实现如下所示:

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()的方法,该方法将value作为参数,并将其动态映射到类属性

目前,我已通过以下方式实施:

    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,并相应地将其映射到类属性

例如,该方法应声明为
插入(self,**kwargs):

有两种方法。更详细地说:

def insert(self, **kwargs):
    for k, v in kwargs.items():
        setattr(self, k, v)
或者更简洁地说:

def insert(self, **kwargs):
    self.__dict__.update(kwargs)

后者不适用于实例中没有
\uuuuu dict\uuuuu
的类,比如定义
\uuuuuu插槽的类。谢谢