为什么我在调用此构造函数时会在标题中出现错误?
我使用以下字典User(**args)
呼叫args
:
{'name': u'Rose Perrone', 'ipAddress': '127.0.0.1', 'email': u'hi@gmail.com'}
这是构造函数:
def __init__(name,
ipAddress,
password=None,
email=None,
deleted=None,
includePromoted=None,
explicit=None):
答案 0 :(得分:6)
首先,制作您的第一个参数self
。你不必,但它非常非常普遍,当有人在阅读你的代码时(比如现在),这很烦人:p。
name
的行为与self
类似。你不应该传递name
(self)的值,因为python已经这样做了。但是,您正在执行此操作,因为您的词典中有一个键name
。因此,你将两个东西传递给一个参数,因此就是错误。
解决此问题:
首先, self
!!!!
但也不要忘记添加name
参数。
总而言之:
args = {'name': u'Rose Perrone', 'ipAddress': '127.0.0.1', 'email': u'hi@gmail.com'}
class MyClass:
def __init__(self,
name,
ipAddress,
password=None,
email=None,
deleted=None,
includePromoted=None,
explicit=None):
pass
MyClass(**args)
# <__main__.MyClass instance at blah>