Python super( ) 函数详解

本文详细介绍了Python中的super()函数,包括其用途、基础信息和典型用法,如解决单继承问题、避免重复调用,以及super(type)的问题。通过对super()的探讨,阐述了如何在多继承场景下优雅地调用父类方法。
摘要由CSDN通过智能技术生成

目录

1 super( ) 的用途

2 了解 super 的基础信息

3 典型用法

3.1 单继承问题

3.2 单继承问题拓展

3.3 重复调用问题

3.4 super(type) 问题


 

1 super( ) 的用途

了解 super() 函数之前,我们首先要知道 super() 的用途是啥?

  • 主要用来在子类中调用父类的方法。
  • 多用于多继承问题中,解决查找顺序(MRO)、重复调用(钻石继承)等种种问题。

 

2 了解 super 的基础信息

语法格式:

super([type[, object-or-type]])

函数描述:

  • 返回一个代理对象,它会将方法调用委托给 type 的父类或兄弟类。

参数说明:

  • type —— 类,可选参数。
  • object-or-type —— 对象或类,一般是 self,可选参数。

返回值:

  • super object —— 代理对象。

help 帮助信息:

>>> help(super)
Help on class super in module builtins:

class super(object)
 |  super() -> same as super(__class__, <first argument>)
 |  super(type) -> unbound super object
 |  super(type, obj) -> bound super object; requires isinstance(obj, type)
 |  super(type, type2) -> bound super object; requires issubclass(type2, type)
 |  Typical use to call a cooperative superclass method:
 |  class C(B):
 |      def meth(self, arg):
 |          super().meth(arg)
 |  This works for class methods too:
 |  class C(B):
 |      @classmethod
 |      def cmeth(cls, arg):
 |          super().cmeth(arg)

... ...
  • super 是一个继承自 object 的类,调用 super() 函数其实就是 super 类的实例化。
  • 根据官方文档的解释 super() 函数返回的对象 —— super object,就是一个代理对象。
  • super() 有四种参数的组合形式。
  • super() 适用于类的静态方法。

 

3 典型用法

3.1 单继承问题

首先我们看一个最基本的子类调用父类方法的示例:


                
  • 60
    点赞
  • 313
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值