从dictionnay构造实例变量

时间:2017-09-14 09:35:55

标签: python python-2.7

我编写了一个类,构造函数接收一个字典,如下面的代码所示:

class Test:
     def __init__(self, **kwargs):
           for key, value in kwargs.items():
               self.key = value

我最后要做的是能够引用每个密钥,如下面的代码所示:

T = Test(age=34, name='david')
print(T.age)

相反,我得到关键字不能成为一个表达..

2 个答案:

答案 0 :(得分:5)

您可以更新类dict:

class Test:
     def __init__(self, **kwargs):
           self.__dict__.update(kwargs)

您还可以查询vars并更新(一个人应该更喜欢直接调用__dunder__属性)。

class Test:
     def __init__(self, **kwargs):
           vars(self).update(kwargs)

答案 1 :(得分:1)

您只设置属性T.key。如果要根据密钥名称动态设置属性,则需要setattr

for key, value in kwargs.items():
    setattr(self, key, value)