Skip to main content
 首页 » 编程设计

python之类型错误 : "__init__() got multiple values for keyword argument ' name'"

2025年05月04日17hnrainll

为什么我在调用这个构造函数时会在标题中出现错误?

我使用以下字典调用 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): 

请您参考如下方法:

首先,让你的第一个参数self。您不必这样做,但这非常非常普遍,当有人阅读您的代码时(就像现在一样),这很烦人:p。

name 在这里表现得像 self。您不应该为 name (self) 传递值,因为 python 已经这样做了。但是,您正在这样做,因为您的字典中有一个关键字 name。因此,您将两个东西传递给一个参数,因此会出现错误。

解决这个问题:

  1. 首先,self !!!!

  2. 但也不要忘记添加您的 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>