如何理解Python中的super()函数和MRO列表?
- 内容介绍
- 文章标签
- 相关推荐
本文共计596个文字,预计阅读时间需要3分钟。
例子+1:+类+A0+:+def+初始化(self)+:+super().初始化()+print(A0)+类+A1(A0)+:+def+初始化(self)+:+super().初始化()+print(A1)+类+B0+:+def+初始化(self)+:+print(B0)+类+B1(B0)+:+def+初始化(self)+:+super().初始化()+print(B1)+类+X(A1, B1)+:+def+初始化(self)+:+“+
例子 1:
def pri(self):
super().pri()
print("A0")
class A1(A0):
def pri(self):
super().pri()
print("A1")
class B0:
def pri(self):
print("B0")
class B1(B0):
def pri(self):
super().pri()
print("B1")
class X(A1, B1):
def pri(self):
super().pri()
print("X")
x=X()
x.pri()
print(x.__class__.mro())
输出:
例子 2:
def pri(self):
#super().pri()
print("A0")
class A1(A0):
def pri(self):
super().pri()
print("A1")
class B0:
def pri(self):
print("B0")
class B1(B0):
def pri(self):
super().pri()
print("B1")
class X(A1, B1):
def pri(self):
super().pri()
print("X")
x=X()
x.pri()
print(x.__class__.mro())
输出:
例子 3:
class A0:def pri(self):
#super().pri()
print("A0")
class B0:
def pri(self):
super().pri()
print("B0")
class B1(B0):
def pri(self):
super().pri()
print("B1")
class X(B1, A0):
def pri(self):
super().pri()
print("X")
x=X()
x.pri()
print(x.__class__.mro())
输出:
例子 4:
def pri(self):
#super().pri()
print("A0")
class B0:
def pri(self):
#super().pri()
print("B0")
class B1(B0):
def pri(self):
super().pri()
print("B1")
class X(B1, A0):
def pri(self):
super().pri()
print("X")
x=X()
x.pri()
print(x.__class__.mro())
输出:
例子 5:
def pri(self):
super().pri()
print("A0")
class B0:
def pri(self):
super().pri()
print("B0")
class B1(B0):
def pri(self):
super().pri()
print("B1")
class X(B1, A0):
def pri(self):
super().pri()
print("X")
x=X()
print(x.__class__.mro())
x.pri()
(A0类中执行pri函数时候调用父类object中的pri函数,由于object类中没有pri函数所以报错)
本文共计596个文字,预计阅读时间需要3分钟。
例子+1:+类+A0+:+def+初始化(self)+:+super().初始化()+print(A0)+类+A1(A0)+:+def+初始化(self)+:+super().初始化()+print(A1)+类+B0+:+def+初始化(self)+:+print(B0)+类+B1(B0)+:+def+初始化(self)+:+super().初始化()+print(B1)+类+X(A1, B1)+:+def+初始化(self)+:+“+
例子 1:
def pri(self):
super().pri()
print("A0")
class A1(A0):
def pri(self):
super().pri()
print("A1")
class B0:
def pri(self):
print("B0")
class B1(B0):
def pri(self):
super().pri()
print("B1")
class X(A1, B1):
def pri(self):
super().pri()
print("X")
x=X()
x.pri()
print(x.__class__.mro())
输出:
例子 2:
def pri(self):
#super().pri()
print("A0")
class A1(A0):
def pri(self):
super().pri()
print("A1")
class B0:
def pri(self):
print("B0")
class B1(B0):
def pri(self):
super().pri()
print("B1")
class X(A1, B1):
def pri(self):
super().pri()
print("X")
x=X()
x.pri()
print(x.__class__.mro())
输出:
例子 3:
class A0:def pri(self):
#super().pri()
print("A0")
class B0:
def pri(self):
super().pri()
print("B0")
class B1(B0):
def pri(self):
super().pri()
print("B1")
class X(B1, A0):
def pri(self):
super().pri()
print("X")
x=X()
x.pri()
print(x.__class__.mro())
输出:
例子 4:
def pri(self):
#super().pri()
print("A0")
class B0:
def pri(self):
#super().pri()
print("B0")
class B1(B0):
def pri(self):
super().pri()
print("B1")
class X(B1, A0):
def pri(self):
super().pri()
print("X")
x=X()
x.pri()
print(x.__class__.mro())
输出:
例子 5:
def pri(self):
super().pri()
print("A0")
class B0:
def pri(self):
super().pri()
print("B0")
class B1(B0):
def pri(self):
super().pri()
print("B1")
class X(B1, A0):
def pri(self):
super().pri()
print("X")
x=X()
print(x.__class__.mro())
x.pri()
(A0类中执行pri函数时候调用父类object中的pri函数,由于object类中没有pri函数所以报错)

