类继承python 3.6:相似的方法

时间:2019-02-28 10:30:54

标签: python-3.x inheritance subclassing

在类继承方面,我并不是最坚强的支柱,所以这是我一个比较愚蠢的问题。按照下面的代码,我将在逻辑上假设在“ super”调用之后,指针到达self.example(),后者将依次引用同一类中的“ 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()

结果:1​​0

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

1 个答案:

答案 0 :(得分:1)

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时,方法示例将继承到B,您不必将其重写为B。当然,您仍然可以为B编写此方法,然后将覆盖对象的'A'方法。 B类。

您还可以使用一个类来继承许多其他类:

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有另一个调用,与上面的示例中的调用等效。