lov*_*sus 131 python python-3.x
我在一个名为的文件中定义了一个类Object.py
.当我尝试从另一个文件中继承此类时,调用构造函数会引发异常:
TypeError: module.__init__() takes at most 2 arguments (3 given)
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
import Object
class Visitor(Object):
pass
instance = Visitor() # this line throws the exception
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
She*_*ena 217
您的错误正在发生,因为它Object
是一个模块,而不是一个类.所以你的继承是棘手的.
将您的import语句更改为:
from Object import ClassName
Run Code Online (Sandbox Code Playgroud)
和你的班级定义:
class Visitor(ClassName):
Run Code Online (Sandbox Code Playgroud)
要么
将您的班级定义更改为:
class Visitor(Object.ClassName):
etc
Run Code Online (Sandbox Code Playgroud)
Sun*_*hie 12
即使在@Mickey Perlstein 的回答和他 3 小时的侦探工作之后,我仍然花了几分钟时间将其应用到我自己的烂摊子上。如果其他人像我一样需要更多帮助,这就是我的情况。
初始 GeoJsonResponse 类:
from pyexample.responses import Response
class GeoJsonResponse(Response):
def __init__(self, geo_json_data):
Run Code Online (Sandbox Code Playgroud)
看起来不错。没有问题,直到您尝试调试该事物,即当您收到一堆看似模糊的错误消息时,如下所示:
from pyexample.responses import GeoJsonResponse ..\pyexample\responses\GeoJsonResponse.py:12: 在(模块)类 GeoJsonResponse(Response) 中:
E 类型错误:module() 最多接受 2 个参数(给出 3 个)
==================================== 错误 ============== ======================
____________________ 收集测试/test_geojson.py 时出错 ____________________
test_geojson.py:2: in (module) from pyexample.responses import GeoJsonResponse ..\pyexample\responses \GeoJsonResponse.py:12: in (module)
class 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
Run Code Online (Sandbox Code Playgroud)
当我应该导入课程时:
from pyexample.responses.Response import Response
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助某人。(在我看来,现在还为时过早。)
小智 5
from Object import Object
Run Code Online (Sandbox Code Playgroud)
或者
From Class_Name import Class_name
Run Code Online (Sandbox Code Playgroud)
如果 Object 是一个.py
文件。
归档时间: |
|
查看次数: |
105877 次 |
最近记录: |