Class 继承 python 3.6 : 相似方法

Class inheritance python 3.6 : Similar methods

在 class 继承方面,我不是最强的支柱,所以我提出了一个相当愚蠢的问题。按照下面的代码,我会在逻辑上假设在 'super' 调用之后,指针到达 self.example() ,这又会引用同一个 class 中的 'example' 方法] 和值 20 将被打印出来。

class A(object):
    def __init__():
        self.example()
    def example(self):
        print(20)

class B(A):
    def __init__():
       super().__init__()
    def example(self):
        print(10)

x = B()

结果:10

显然不是这种情况,而是打印了 10。有人可以阐明 class 继承的神秘世界吗?

class A(object):
    def __init__():
        self.example()
    def example(self):
        print(20)

class B(A):
    def __init__():
       super().__init__()

x = B()
x.example()

找这个,例如。

当你从A继承B时,方法example被继承给B,你不必将这个重写给B。当然你仍然可以为B写这个方法,然后你会覆盖'A'方法,对于 class B 的对象。

您还可以使用一个 class 与许多其他继承:

class Base(object):
    def __init__(self):
        print("Base created")

class ChildA(Base):
    def __init__(self):
        Base.__init__(self)

class ChildB(Base):
    def __init__(self):
        super(ChildB, self).__init__()

ChildA()
ChildB()

ChildB 有另一个调用,与上面示例中使用的等效。