位置: 编程技术 - 正文

深入理解Python中的super()方法(深入理解python特性 pdf)

编辑:rootadmin

推荐整理分享深入理解Python中的super()方法(深入理解python特性 pdf),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python深入浅出,python的理解,如何理解python语言,深入python3,浅谈python,python的理解,深入python3,深入理解python特性 pdf,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

python的类分别有新式类和经典类,都支持多继承。在类的继承中,如果你想要重写父类的方法而不是覆盖的父类方法,这个时候我们可以使用super()方法来实现

python语言与C++有相似的类继承,在类定义时,python中会自定义第一个self,类似C++中this指针,指向对象自身。

python简单的类举例:

当然在实际中不可避免的需要类的继承,子类继承父类,正常如下:

在python中还提供了super()机制,例子如下:

深入理解Python中的super()方法(深入理解python特性 pdf)

注意

Python2.2以前的版本:经典类(classic class)时代

经典类是一种没有继承的类,实例类型都是type类型,如果经典类被作为父类,子类调用父类的构造函数时会返回这样的错误 '''TypeError: must be type, not classobj'''

这时MRO的方法为DFS(深度优先搜索(子节点顺序:从左到右))。所以本文中使用的是新式类,而新式类的搜索算法是C3算法

上面的代码中C是父类,D是子类,我们在D类重新定义了minus方法,就是在C类的功能基础基础上新添print 'hello'功能。super在这里的作用就是在子类中调用父类的方法,这个也是在单继承常见调用super()的用法。那么问题来了

那么上面的代码中b.n的输出是什么呢?为什么结果是2呢,而不是5呢?super(B,self).minus(m)明明是调用了父类的minus方法,可是输出结果就是2,是你要明白现在B的实例,而不是A的实例,那么传递的self.n的数值是7,而不是.

那么对于多继承的时候,super又是怎样工作的呢?来,现在创建一个继承A的C类,然后再创建一个继承B,C的D类,看看怎样调用super是重写方法。

如上的代码输出的结果是什么呢?别心急,先看看它是怎样运行的。上面提及到新式类寻找子节点时候使用的是C3算法。那么它是怎么找呢。D->B->C->A->object。怎样才能验证这个顺序是对的呢。

Mro是什么呢?对于你定义的每一个类,Python 会计算出一个方法解析顺序(Method Resolution Order, MRO)列表,它代表了类继承的顺序。

总结

标签: 深入理解python特性 pdf

本文链接地址:https://www.jiuchutong.com/biancheng/372297.html 转载请保留说明!

上一篇:python实现读取excel写入mysql的小工具详解(python中读取excel)

下一篇:python中学习K-Means和图片压缩(python kmeans sklearn)

  • 一般纳税人暂未开具发票
  • 娱乐行业缴纳的税收
  • 递延所得税资产账务处理
  • 单位收到已交个税的劳务发票还需要申报个税吗
  • 报个税的工资表
  • 软件测试费计入什么科目
  • 未确认融资收益怎么算
  • 免征增值税项目记忆
  • 通用机打发票如何验旧
  • 小企业会计准则以前年度损益调整
  • 取得虚开增值税专用发票罪
  • 企业的主管部门承担什么责任
  • 当年实现的利润弥补亏损会计分录
  • 免税收入的三个条件
  • 收到招聘通知
  • 全额拨款事业单位工会经费来源
  • 宣传资料设计制作
  • 农产品发票抵扣需要勾选吗
  • 按折现率计算现值
  • 营改增后增值税暂行条例实施细则
  • 民间非营利组织会计制度
  • 甲公司聘用乙为业务经理
  • 租房时,怎么替房东缴税?
  • 股东分红纳入社会保险吗
  • 长期股权投资账务处理
  • 工业企业和其他企业经营的对象
  • 人力资源管理师考试时间
  • 天猫积分购物券怎么获得
  • php中的类是什么
  • 经营营业执照以外
  • 固定资产成本中的相关税费
  • php中的include
  • 购入固定资产如何折旧
  • icon图标教程
  • 担保公司未到期责任准备金会计及税务处理案例
  • 企业信用贷款还款方式
  • 信用减值损失属于损益类科目吗
  • 带息票据和不带息票据区别
  • 激光器原理及应用
  • 卷积神经网络CNN实验报告
  • 退税勾选错了怎么办
  • dict.setdefault()在python中设置默认值
  • python中列表的索引用法
  • js执行上下文的概念
  • 坏账的计算公式
  • 去年出口
  • 事业单位取暖费2023
  • 委托代理进出口
  • 将外购商品作为非货币
  • 餐饮业固定资产怎么摊销
  • 知识产权fa
  • 银行存款手工账
  • 为员工买的商业保险怎么做账
  • 个人购汇需要申报吗
  • win10系统可以自己安装驱动吗
  • winxp怎么装系统
  • 优化加速锁定任务是什么意思
  • win8系统启动项在哪
  • ngwatch.exe
  • Following the pipeline
  • 如何使用jquery绑定事件
  • jquery 图片左右滚动
  • 游戏开发之二维码怎么弄
  • 优化了一些已知问题是什么意思安不安装
  • unit uniform
  • unity5.x游戏开发指南
  • bootstrap基础教程
  • python函数菜鸟教程
  • jquery自动完成插件
  • 开发流程和步骤
  • 简易的python代码
  • nodejs ejs
  • 如何用javascript
  • js对象判断
  • 济宁税务局王燕利
  • 江苏发票真伪查询
  • 税盘注销了怎么申报增值税
  • 山东水利建设基金减免政策
  • 经济适用房土地使用年限
  • 上市股票转为非上市
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设