我编写了一个类,构造函数接收一个字典,如下面的代码所示:
class Test:
def __init__(self, **kwargs):
for key, value in kwargs.items():
self.key = value
我最后要做的是能够引用每个密钥,如下面的代码所示:
T = Test(age=34, name='david')
print(T.age)
相反,我得到关键字不能成为一个表达..
答案 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)