请不要标记为重复,其他类似的问题没有解决我的问题。
这是我的设置
/main.py
/actions/ListitAction.py
/actions/ViewAction.py
主.py:
from actions import ListitAction, ViewAction
列表操作.py:
class ListitAction(object):
def __init__(self):
#some init behavior
def build_uri():
return "test.uri"
ViewAction.py视图
from actions import ListitAction
class ViewAction(ListitAction):
def __init__(self, view_id):
ListitAction.__init__(self)
self.view_id = view_id
def build_uri():
return "test"
跑步:
$ python3 main.py
我收到的唯一错误消息是:
Traceback (most recent call last):
File "/home/jlevac/workspace/project/listit.py", line 11, in <module>
from actions import ListitAction, ViewAction, CommentsAction
File "/home/jlevac/workspace/project/actions/ViewAction.py", line 3, in <module>
class ViewAction(ListitAction):
TypeError: module.__init__() takes at most 2 arguments (3 given)
即使尝试使用python3控制台,也会收到相同的错误消息:
$python3
from actions import ViewAction
我是Python新手,但对编程并不陌生。我假设我的错误消息与import语句有关,但是根据消息,我无法真正理解它的含义。
谢谢
当你不需要的时候,你就通过了
self
,仅此而已。编辑:请参阅MSeifert的
注释答案,因为我不想窃取内容。如果文件位于项目的根目录中,则可以直接写入文件名并导入。
例如,如果文件名是
Parent1.py
,类名是Parent
,则但是,如果文件
Parent1.py
位于任何文件夹下,例如:然后你必须写:
您的导入是错误的,因此您试图从模块本身继承,而不是从模块内部定义的类(同名)继承。
在
ViewAction.py
中应该是:同样,所有其他用途都应该切换到
from actions.XXX import XXX
的显式导入(由于名称重复),例如from actions import ListitAction, ViewAction
必须变成两个导入:因为导入的类来自
actions
包下的不同模块。相关问题 更多 >
编程相关推荐