• python学习笔记(二十五)重写父类方法


    python继承中,如果子类在调用某个方法时,它首先是从派生类(也就是当前类)中去找对应的方法,如果当前类中找不到对应的方法,就会去基类(派生类)中去逐个查找。

    若父类的方法不能满足子类的需要,那么子类就可以重写或者完善父类的方法。

    例如:

    # coding=utf-8
    class Father():
        def smile(self):
            print('哈哈哈')
    
    class Son(Father):
        def smile(self):   #重写父类的方法
            Father().smile()  #调用了父类,这种属于在父类的基础上完善父类的方法,若不调用父类的smile()方法就属于完全舍弃父类的此功能来重写这个方法
    super(Son,self).smile()#这个是自动找到父类中的smile方法,如果继承了多个父类,那么会按照继承的父类的顺序去一个一个找 print(
    '呵呵呵') s= Son() s.smile()

    如果继承了多个父类,多个父类中都有子类要重写完善的方法,那么可以使用上面的Father().smile()调用,也可以使用一个逼格较高的super来调用,super会从继承的父类里一个一个去找,先在哪个类里找到就继承哪个类里的该方法。代码如下:

    # coding=utf-8
    class Zll():
        # def smile(self):
        #     print('哈哈哈')class Dcg():
        def smile(self):
            print('啊啊啊啊啊')
    
    class Lw():
        def smile(self):
            print('嘿嘿嘿')
    
    class Xz(Zll,Dcg,Lw):
        def smile(self):   #重写父类的方法
            # Dcg().smile()  #调用了父类
            # super(Xz,self).smile()  #这个自动帮你找到父类的,如果这样写会按继承顺序,Zll、Dcg、Lwy一个一个去找,先在哪个类中找到就先使用哪个类里的smile方法
            print('呵呵呵')
    x = Xz()
    x.smile()
  • 相关阅读:
    读书笔记:芳华
    工作4个余月了
    读书笔记:秘密
    读书笔记:移动的帝国_日本移动互联网兴衰启示录
    『用英语学英语』英文语法为什么要有独立主格?
    『转』The Beginning of your Design Career
    『转』Writing Well
    『转』How to Think About Your Career
    selenium RC 环境配置
    菜鸟学自动化测试(一)----selenium IDE
  • 原文地址:https://www.cnblogs.com/mululu/p/9106408.html
Copyright © 2020-2023  润新知