我在Python 3.6中创建了一个简单的类,它应该接受键,字典中的值作为参数
我的代码:
class MyClass:
def __init__(self, **kwargs):
for a in kwargs:
self.a=kwargs[a]
for b in a:
self.a.b = kwargs[a][b]
Test = MyClass( {"group1":{"property1":100, "property2":200},\
"group2":{"property3":100, "property4":200}})
我的代码返回错误:
TypeError: init ()需要1个位置参数但是2个被赋予
我希望Test.group2.property4返回200
我发现有很多类似的问题但是到处都存在的主要问题是 init 方法中缺少“自我”。但我知道了。
有人可以解释这个错误的原因吗? 感谢
答案 0 :(得分:8)
将参数作为解压缩的dict传递,而不是作为单个位置参数传递:
MyClass(**{"group1":{"property1":100, "property2":200},\
"group2":{"property3":100, "property4":200}})