如何理解Python中的super()函数和MRO列表?

2026-06-09 12:081阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计596个文字,预计阅读时间需要3分钟。

如何理解Python中的super()函数和MRO列表?

例子+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:




class A0:
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:


class A0:
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:



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())


输出:

如何理解Python中的super()函数和MRO列表?


例子 5:


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()
print(x.__class__.mro())
x.pri()



(A0类中执行pri函数时候调用父类object中的pri函数,由于object类中没有pri函数所以报错)


本文共计596个文字,预计阅读时间需要3分钟。

如何理解Python中的super()函数和MRO列表?

例子+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:




class A0:
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:


class A0:
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:



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())


输出:

如何理解Python中的super()函数和MRO列表?


例子 5:


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()
print(x.__class__.mro())
x.pri()



(A0类中执行pri函数时候调用父类object中的pri函数,由于object类中没有pri函数所以报错)