【发布时间】:2017-10-26 06:16:40
【问题描述】:
我正在 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 方法中没有“self”。但我有。
有人可以解释这个错误的原因吗? 谢谢
【问题讨论】:
-
您告诉
__init__采用任意数量的关键字参数,但使用两个位置参数调用它(其中一个由 Python 隐式提供作为对创建的对象的引用,另一个是字典)..