在类继承方面,我并不是最坚强的支柱,所以这是我一个比较愚蠢的问题。按照下面的代码,我将在逻辑上假设在“ 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()
结果:10
显然不是这种情况,而是打印了10个。有人可以说明阶级继承的神秘世界吗?
答案 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有另一个调用,与上面的示例中的调用等效。