python super()继承和多继承
Posted plusultra
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python super()继承和多继承相关的知识,希望对你有一定的参考价值。
class A:
def __init__(self):
self.n = 2
def add(self, m):
print('self is {} @A.add'.format(self))
self.n += m
class B(A):
def __init__(self):
self.n = 3
def add(self, m):
print('self is {} @B.add'.format(self))
super().add(m)
self.n += 3
class C(A):
def __init__(self):
self.n = 4
def add(self, m):
print('self is {} @C.add'.format(self))
super().add(m)
self.n += 4
class D(B, C):
def __init__(self):
self.n = 5
def add(self, m):
print('self is {} @D.add'.format(self))
super().add(m)
self.n += 5
d = D()
d.add(2) #虽然使用的时父类的add(),但是self一直是代表D类的self.
print(d.n)
多继承的顺序是先从左到右,再从下到上。
# d.n=5+3+4+2+5=19
输出结果:
# self is <__main__.D object at 0x10d99e4e0> @D.add
# self is <__main__.D object at 0x10d99e4e0> @B.add
# self is <__main__.D object at 0x10d99e4e0> @C.add
# self is <__main__.D object at 0x10d99e4e0> @A.add
19
以上是关于python super()继承和多继承的主要内容,如果未能解决你的问题,请参考以下文章
Python爬虫编程思想(138):多线程和多进程爬虫--从Thread类继承
Python爬虫编程思想(138):多线程和多进程爬虫--从Thread类继承