千家信息网

Python编程super应用场景有哪些

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"Python编程super应用场景有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python编程super应用场景有哪些"吧!目录
千家信息网最后更新 2026年11月03日Python编程super应用场景有哪些

本篇内容主要讲解"Python编程super应用场景有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python编程super应用场景有哪些"吧!

目录
  • 一、什么是super

  • 三、super的常用使用场景

一、什么是super

1.super也是一个类,是的。他不是一个方法也不是一个内置的关键字。

class A:    passprint(type(super(A)))

输出结果

直接通过查看super的源码也可以看出它是一个类

另外,网上很多文章讲解super就是用来调用父类方法的,这也是一个错误的观点!

假如我们有下面这样一个例子:

class A:    def __init__(self):        print("A")class B(A):    def __init__(self):        print("B")        super().__init__()class C(A):    def __init__(self):        print("C")        super().__init__()class D(B, C):    def __init__(self):        print("D")        super().__init__()D()

如果按照"super就是用来调用父类的方法的"这样的理解来看,那上述代码的执行的过程应该为:

print("D")-【调用super会先后执行B和C】-先执行B:print("B")-【调用super执行A】-

print("A")-【调用super会先后执行B和C】-后执行C:print("C")-【调用super执行A】-

print("A")

执行结果理论应该为:D B A C A

但实际情况却不是这样的!

实际执行结果

D
B
C
A

所以说"super就是用来调用父类的方法的"这个说法是错误的!

实际上super的调用是遵循Python的【MRO(方法解析顺序)】来执行的,在Python3中,MRO是基于C3算法来实现的。

关于MRO和C3算法的讲解可以参考这篇文章http://kaiyuan.me/2016/04/27/C3_linearization/

三、super的常用使用场景

1.假如我们继承的多个父类有同名的方法,可以使用super来指定使用哪个父类的方法

class A:    def test(self):        print('A')class B:    def test(self):        print('B')class C(A, B):    def __init__(self):        super().test()  # 调用A类中的test方法        super(C, self).test()  # 调用A类中的test方法        super(A, self).test()  # 调用B类中的test方法            C()

输出结果

A
A
B

2.当我们在子类中使用父类的一个方法并且想对其做一定扩展又不想完全重写,那么使用super()就可以实现方法的增量修改:

举一个例子,如果我们想把list中的append的方法改为中文添加应该怎么做呢?

并且python中list调用append方法是没有返回值的,我们想在添加元素操作成功后加一个返回值返回成功又该如何操作呢?

首先看通过调用原来的list的执行结果

a=list()res=a.append(1)print(res)

输出结果

None

可以看到调用append方法后返回的值为None

现在我们通过super进行重写,让其具有返回值并可以直接通过中文来调用append:

class 列表(list):    def 添加(self, *args, **kwargs):        super().append(*args, **kwargs)        return "添加成功"x = 列表()res = x.添加(1)print(res)print(x)

输出结果

添加成功
[1]

super实际上还是很常用的,比如在restfremework中,需要重写其响应结果的Response信息的时候,除了通过django的中间件实现,也可以使用super重写其dispatch来实现。

到此,相信大家对"Python编程super应用场景有哪些"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

方法 结果 场景 实际 成功 输出 应用 编程 就是 常用 例子 先后 内容 实际上 算法 错误 中文 学习 实用 更深 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司简介 中关村互联网 科技集团 上海致骋互联网科技 广州善班互联网科技 上海万想互联网科技 互联网科技网站 四川狮子座互联网科技 开启互联网科技时代小说 深圳国际航运科技和互联网 字节跳动和互联网科技 银川新华互联网科技职业技术培训学校图片 成都铂石互联网科技做什么的 中国互联网十大科技股排名 想开互联网科技公司怎么样 科技类公司包括互联网吗 互联网方面的科技前沿 互联网金融科技元年 电子商务与互联网科技的关系 求路客互联网科技电话 科技互联网专业务虚会材料 奇酷互联网络科技 移动互联网科技股 青岛科技大学互联网大赛研究生 华夏互联网科技业 996高科技互联网公司 企晟互联网信息科技有限公司 广州燕处互联网科技有限公司 唯美互联网科技 东风日产互联网科技公司叫什么 互联网大会出现的黑科技
0