在向超类传递参数时,会出现错误提示:"module.__init__()最多接受2个参数(给出了3个)"?

5 浏览
0 Comments

在向超类传递参数时,会出现错误提示:"module.__init__()最多接受2个参数(给出了3个)"?

错误 -:module.__init__()最多接受2个参数(给出了3个)。

为什么会出现这个错误?我正在使用Python 3.2。

0
0 Comments

在上述代码中,出现了一个错误的参数传递方式导致了错误的出现。错误提示为"module.__init__() takes at most 2 arguments (3 given)",即在初始化函数中给出了3个参数,但是只能接受最多2个参数。

这个问题的出现是因为在调用父类的初始化函数时,使用了错误的参数传递方式。正确的参数传递方式应该是使用**kwargs来传递参数。

在Python中,当调用父类的初始化函数时,可以使用super()函数来实现。在这个例子中,super(waybill, self).__init__(kwargs)是错误的写法,应该改为super(waybill, self).__init__(**kwargs)。

解决方法是使用**kwargs来传递参数。在Python中,**kwargs是将参数以字典的形式传递给函数。在这个例子中,kwargs是一个包含参数的字典,通过使用**kwargs将参数传递给父类的初始化函数。

通过以上的修改,就能够解决这个错误,代码将会正常运行,不再出现"module.__init__() takes at most 2 arguments (3 given)"的错误提示。

0
0 Comments

问题的原因是在调用super类的构造函数时,传递了不正确的参数个数。解决方法是检查参数的传递,并确保传递正确的参数个数。

在这个特定的情况下,问题出现的原因可能是在导入info模块时,没有正确引用info变量。建议修改为from info import info来正确引用info变量。

额外的信息是,如果只是简单地使用import info导入info模块,那么info就是一个模块,而waybill是继承自模块module的子类。

原作者回答说,他们的确将info定义在了不同的文件中。

感谢指正,虽然错误信息有点奇怪。

0