Sie definieren Ihr __init__
ein Argument genannt, aber Sie sind in einem Positions Argument übergeben. Um auf der Grundlage Ihrer Definition, um richtig die Klasse zu instanziiert, Sie ein richtiges benannte Argument zur Verfügung stellen müssen, oder auspacken Ihr Wörterbuch in Ihrem Anruf:
Test_class(**dic)
Wenn Sie ein explizites benannte Argument stattdessen übergeben mag, können Sie wäre dann so etwas wie tun: Doch
Test_class(some_arg=dic)
auf, was Sie zu tun versuchen, ich glaube, Sie versuchen, die erste Lösung zu tun, wo Sie wollen Ihr Wörterbuch passieren und den „Schlüssel“, wie die Verwendung Argumentname.
Beachten Sie, wie Sie Ihre Fehler hier wiedergegeben wird, und dann korrigiert:
>>> class Test_class(object):
... def __init__(self,**kwargs):
... for a in kwargs.values():
... print(a)
...
>>> dic = {"a_list":1}
>>>
>>> Test_class(dic)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __init__() takes exactly 1 argument (2 given)
>>> Test_class(a=dic)
{'a_list': 1}
<__main__.Test_class object at 0x10b505a10>
>>>
Verwendung auspacken:
>>> Test_class(**{"a_list":1})
1
<__main__.Test_class object at 0x10b505a90>
>>>
Danke, Kumpel :) –