091-python-super

先调用父类,还是先执行基类定义的函数内容。。。。 

具体看下代码自己理解吧,这里面涉及以个问题,就是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

这说明:

==========================

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值