我正在尝试使用以下结构初始化子模块中的父模块:
$ cat caller.py
#!/usr/bin/env
import child
$ cat parent.py
class parent(object):
def __init__(self):
print "initialised parent"
$ cat child.py
import parent
class child(parent):
def __init__(self):
print "initialised child"
然而我收到以下错误:
Traceback (most recent call last):
File "caller.py", line 3, in <module>
import child
File "child.py", line 2, in <module>
class child(parent):
TypeError: Error when calling the metaclass bases
module.__init__() takes at most 2 arguments (3 given)
我做错了什么?
答案 0 :(得分:8)
您正在尝试将parent
模块对象用作类。您需要使用模块中的类对象:
import parent
class child(parent.parent):
def __init__(self):
print "initialised child"
或者从模块中将类导入全局命名空间:
from parent import parent
class child(parent):
def __init__(self):
print "initialised child"