位置: 编程技术 - 正文

深入理解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)

  • 购买二手车还需要交购置税吗
  • 货物退回是什么意思
  • 营业总收入包括营业外收入吗
  • 费用发票跨月可以入帐吗
  • 固定资产怎么进账
  • 农产品收购发票可以跨区域开吗
  • 公司会计制度由小企业会计准则改为企业会计准则怎么做
  • 买赠活动怎么账务处理
  • 一般纳税人收到专票怎么做分录
  • 奖金属于应付职工薪酬
  • 出纳长短款项应按日结清,但不需要计算
  • 主营业务税金及附加包括什么
  • 小规模纳税人出售不动产征收率
  • 增值税附加税计入什么会计科目
  • 电费增值税怎么算出来的
  • 一级代理价格
  • 企业风险报酬转移怎么理解
  • 支付给外单位的押金是其他应收款吗
  • 小规模纳税人一个月能开多少税票
  • 查看所有共享文档
  • 怎么用u盘启动dos
  • 应收应付款有零头怎么处理
  • 一般纳税人纳税申报表
  • 增值税要不要计入固定资产的成本中?
  • 货物质量赔偿需要改变收入吗合法吗
  • chrome内核的浏览器是什么意思
  • 电脑的nip是什么
  • php实现文件下载功能
  • 福利企业的税收怎么算
  • 连接云服务器超时
  • 不得税前扣除的项目有哪些
  • 什么情况下要预提集装箱
  • PHP实现中国公民身份证号码有效性验证示例代码
  • php对象
  • 机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测
  • 从银行提取现金50000元备发工资
  • 同城票据交换差额户会计分录
  • 织梦怎么改文字
  • 代收代付进项税转出吗
  • 手写报销条子怎么写
  • 全年一次性奖金税率表2023最新
  • 留抵进项税太多怎么办
  • sql 语句插入结果为select和值混合示例
  • 小规模纳税人补开发票如何申报
  • 月报表该怎么做表格
  • 积分兑换商品怎么查快递
  • 外贸会计的工作内容
  • 普通发票的进项票怎么做分录
  • 土地使用权入账务处理
  • 发放外单位人员劳务费需要在发放表上签字吗
  • 在建工程项目包括
  • 购买汽车保险费是否做入固定资产
  • 收派服务与快递服务区别
  • 房地产企业成本控制存在的问题及对策
  • sp_executesql 使用复杂的Unicode 表达式错误的解决方法
  • win10一年更新一次
  • Windows Server 2008域环境下组策略两例应用
  • 为快捷方式建立快捷方式
  • win8右侧栏设置
  • linux scp远程拷贝文件及文件夹
  • 无法打开opencv2
  • win7找回删除的文件
  • win10 系统软件
  • window10外接摄像头怎么启用
  • 学会这8个技巧让你做出的菜味道更好
  • 最简单的游戏开发工具
  • 安卓专业图片处理软件
  • perl use of uninitialized
  • linux 每隔几秒执行一次
  • 命令行批处理文件
  • 简要说明javascript的作用
  • unity教程完整版
  • app开发指南
  • android使用方法
  • unity大神
  • 出口退税是否缴纳所得税
  • 苏宁易购的联系电话
  • 江苏税务登记证查询
  • 增值税专用发票注明的金额是含税还是不含税
  • 放管服中的服的深层含义
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设