TypeError:module .__ init __()最多需要2个参数(给定3个)

时间:2013-01-29 13:12:06

标签: python python-3.x

我在名为Object.py的文件中定义了一个类。当我尝试从另一个文件中继承此类时,调用构造函数会引发异常:

TypeError: module.__init__() takes at most 2 arguments (3 given)

这是我的代码:

import Object

class Visitor(Object):
    pass

instance = Visitor()  # this line throws the exception

我做错了什么?

5 个答案:

答案 0 :(得分:196)

您的错误正在发生,因为Object是一个模块,而不是一个类。所以你的继承是棘手的。

将您的import语句更改为:

from Object import ClassName

并将您的班级定义为:

class Visitor(ClassName):

将您的班级定义更改为:

class Visitor(Object.ClassName):
   etc

答案 1 :(得分:3)

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

from Object import Object as Parent

并将您的班级定义为:

class Visitor(Parent):

答案 2 :(得分:1)

from Object import Object

From Class_Name import Class_name

如果Object是.py文件。

答案 3 :(得分:0)

即使在@Mickey Perlstein的回答和他3个小时的侦探工作之后,我仍然花了几分钟才将其应用于我自己的烂摊子。如果有人像我一样需要更多帮助,这就是我的情况。

  • 响应是一个模块
  • 响应是响应模块中的基类
  • GeoJsonResponse是从Response派生的新类

GeoJsonResponse初始类:

from pyexample.responses import Response

class GeoJsonResponse(Response):

    def __init__(self, geo_json_data):

看起来不错。在尝试调试事物之前,没有问题,那就是当您收到一堆看似模糊的错误消息时:

  来自pyexample.responses的

导入GeoJsonResponse   .. \ pyexample \ responses \ GeoJsonResponse.py:12:in(模块)      类GeoJsonResponse(Response):

     

E TypeError:module()最多接受2个参数(给定3个参数)

     

==================================错误============ =======================

     

___________________收集测试错误/test_geojson.py ____________________

     

test_geojson.py:2:在(模块)中       从pyexample.responses中导入GeoJsonResponse .. \ pyexample \ responses \ GeoJsonResponse.py:12:在(模块)中

     

GeoJsonResponse(Response)类:   E TypeError:module()最多接受2个参数(给定3个参数)

     

错误:未找到:\ PyExample \ tests \ test_geojson.py :: TestGeoJson :: test_api_response

     

C:\ Python37 \ lib \ site-packages \ aenum__init __。py:163

     

([[]中的任何一个都没有名称'PyExample \ tests \ test_geojson.py :: TestGeoJson :: test_api_response')

错误正在尽最大努力将我指向正确的方向,而@Mickey Perlstein的回答却死定了,我花了一分钟的时间将所有这些放在我自己的上下文中:

我正在导入 模块

from pyexample.responses import Response

当我应该导入 class 时:

from pyexample.responses.Response import Response

希望这对某人有帮助。 (以我的辩护,还很早。)

答案 4 :(得分:0)

在遇到问题的情况下,当我尝试扩展类时,我指的是模块。

{!! Form::file('motivation', ['id' => 'inputGroupMotivation', 'class' => 'custom-file-input']) !!}

如果查看文档信息,您将看到“日志记录”显示为模块。

在这种特定情况下,我必须简单地继承日志记录模块才能为日志记录创建一个额外的类。

相关问题