python类相互继承

时间:2016-08-03 07:15:10

标签: python class inheritance

我在同一目录中有2个Python文件。 one.py和two.py分别包含First和Second类。 我想要导入类并相互继承并使用彼此定义的方法

one.py

from two import Second
class First(Second):
    def first(self):
       print "first"

two.py

from one import First 
class Second(First):
    def second(self):
        print "second"

编译时我遇到以下错误。有什么办法可以解决这个问题。请建议替代方法。

Traceback (most recent call last):
  File "C:\Users\uvijayac\Desktop\New folder\two.py", line 1, in <module>
    from one import First
  File "C:\Users\uvijayac\Desktop\New folder\one.py", line 1, in <module>
    from two import Second
  File "C:\Users\uvijayac\Desktop\New folder\two.py", line 1, in <module>
    from one import First
ImportError: cannot import name First

1 个答案:

答案 0 :(得分:1)

您遇到的实际问题是您尝试进行循环导入,这与循环继承无关。 (关于如何避免这种情况,SO上有很多材料。)

但是,请注意循环继承也是不可能的,因为一个类只有在定义后才可用于子类化,并且它的定义包括从另一个类子类化,因此也需要已经定义,这需要...你明白了 - 你不能有循环继承。