先调用父类,还是先执行基类定义的函数内容。。。。
具体看下代码自己理解吧,这里面涉及以个问题,就是Method Resolution Order,或MRO
下面的代码:
# -*- coding: UTF-8 -*-
class A:
def fun(self):
print('A.fun')
class B(A):
def fun(self):
print('B.fun')
super().fun()
class C(A):
def fun(self):
print('C.fun')
super().fun()
class D(B , C):
def fun(self):
print('D.fun')
super().fun()
D().fun()
执行结果:
D.fun
B.fun
C.fun
A.fun
我的理解(也不知对错哈,暂时就这么理解)就是这个是,函数调用后,会依次的退出各个函数,执行print(),执行完一个函数后,依次退出调用的函数。可以结合下面【2】例子2看下
===================================
【2】例子2
class A:
def fun(self):
print('A')
class B(A):
def fun(self):
super().fun()
print('B')
class C(A):
def fun(self):
super().fun()
print('C')
class D(B , C):
def fun(self):
super().fun()
print('D')
D().fun()
这个代码执行的书序是
A.fun
C.fun
B.fun
D.fun
这说明:
==========================