0

我正在尝试从具有以下结构的子模块初始化父模块:

$ 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)

我究竟做错了什么?

4

1 回答 1

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"
于 2013-11-14T12:50:48.973 回答