TypeError:模块.__ init __()至多需要2个参数(给出3个参数)

import Object class Visitor(Object): def __init__(self): super(Visitor,self).__init__() def visit(self, obj): pass def getIsDone(self): return False isDone = property(fget =lambda self:self.getIsDone()) 

我得到这个错误: TypeError: module.__init__() takes at most 2 arguments (3 given)

 class A:pass print(A) #outputs <class '__main__.A'> import urllib print(urllib) #outputs <module 'urllib' from '/usr/lib/python3.2/urllib/__init__.py'> 

你的错误发生是因为Object是一个模块,而不是一个类。 所以你的inheritance是棘手的。

将您的导入语句更改为:

 from Object import ClassName 

和你的class级定义为:

 class Visitor(ClassName): 

要么

改变你的类定义为:

 class Visitor(Object.ClassName): etc 

您也可以在Python 3.6.1中执行以下操作

 from Object import Object as Parent 

和你的class级定义为:

 class Visitor(Parent):