• super()函数


    重写了父类方法后如果又要调用父类的方法怎么办呢?

    还记得调用对象方法时可以通过类调用吗?看下面的案例:

    class A:
        def func(self):
            print('A')
    
    class B(A):
        def func(self):
            A.func(self)			# 通过硬编码直接通过A.func调用
            print('B')
    
    b = B()
    b.func()
    

    输出:

    A
    B
    

    但是这样有个问题,如果后面修改了B类继承的父类为其他类时,这里也需要跟着修改。

    通过super()函数就可以动态的找到父类中的方法。

    class A:
        def func(self):
            print('A')
    
    class B(A):
        def func(self):
            super().func()			# super()函数会自动处理继承关系
            print('B')
    
    b = B()
    b.func()
    

    这样,修改了B类继承的父类为其他类时,这里不需要修改。

    注意当继承链很长或者多继承时,所有的子类对应方法中都要通过super()去保证调用链。

  • 相关阅读:
    NGINX-HTTPS
    README
    SSH
    Ubuntu
    Python复利
    Python全双工聊天
    Python半双工聊天
    Python网络编程
    使用Python PIL库中的Image.thumbnail函数裁剪图片
    Python模块 os.walk
  • 原文地址:https://www.cnblogs.com/superwuchaofan/p/16635761.html
Copyright © 2020-2023  润新知