我在这里找到了一个通过自我更新批量类属性的建议。 dict .upadte 所以我试过
class test(object):
def __init__(self, **kwargs):
self.__dict__.update(kwargs)
def update(self, **kwargs):
self.__dict__.update(kwargs)
d = {'a':1,'b':2,'c':3}
c = test(d)
以及
c = test()
c.update(d)
但是我收到了错误
TypeError: __init__() takes exactly 1 argument (2 given)
有谁能告诉我为什么这不起作用? 干杯 下进行。
答案 0 :(得分:6)
因为您没有正确传递值。
c = test(**d)
答案 1 :(得分:1)
像这样使用kwargs:
c = test()
c.update(**d)
答案 2 :(得分:0)
test(d)
将d传递给test的构造函数作为第一个位置参数(在实例变量本身之后)。 test.__init__
不接受任何位置参数,只接受关键字参数。正如其他人所说,使用test(**d)
。