Python中的循环导入和子类

时间:2018-11-02 21:42:51

标签: python inheritance import

相对而言,这是Python的新手。我在循环导入时遇到错误,因此我将所有导入语句更改为import *module name*

我想做这样的事情(下面是module2):

import module1

class Subclass(Superclass)
    # some code

其中超类是在modeule1中定义的,而子类是从超类继承的。

我收到未定义超类的错误。我也尝试过使用class Subclass(module1.Superclass),但似乎无法弄清楚如何使其工作。谢谢!

1 个答案:

答案 0 :(得分:0)

您可以执行以下任一操作:

import module1

class Subclass(module1.Superclass):
    pass
    #some code

或者:

from module1 import Superclass

class Subclass(Superclass):
    pass
    #some code

Python需要知道1)它可以通过其访问该类的名称空间,或者2)显式导入该类。

为清楚起见,module1如下所示:

class Superclass:
    pass
    #some code

示例

对于module1.py

class Superclass:

    def __init__(self):
        pass

    def a(self):
        print('a')

    def b(self):
        print('b')

然后是module2.py

from module1 import Superclass

class Subclass(Superclass):
    pass

x = Subclass().a()

运行module2.py将返回:

a