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