python支持多继承吗


Posted in Python onJune 19, 2020

大部分面向对象的编程语言(除了C++)都只支持单继承,而不支持多继承,为什么呢?因为多继承不仅增加编程复杂度,而且容易导致莫名其妙的错误。

Python虽然语法上支持多继承,但是却不推荐使用多继承,而是推荐使用单继承,这样可以保证编程思路更清晰,也可以避免不必要的麻烦。

当以一个子类有多个直接父类时,该子类会继承得到所有父类的方法,但是如果其中有多个父类包含同名方法会发生什么?此时排在前面的父类中的方法会“遮蔽”后面父类中的方法。

栗子如下:

#coding=utf-8
class Item:
  def info(self):
    print("Item中的方法",'这是一个商品')
    
class Product:
  def info(self):
    print('Product中的方法','这是一个能赚钱的商品')
    
class Computer(Item,Product):
  pass
  
c = Computer()
c.info()

控制台打印如下:

Item中的方法,这是一个商品

解释:控制台打印的是Item类中的方法,所以说子类所继承的父类中的方法,如果存在同名,前面的会“遮蔽”后面的即前面的直接父类优先级高于后面的。

Python关于多继承知识点扩展:

大部分面向对象的编程语言(除了C++)都只支持单继承,而不支持多继承,为什么呢?因为多继承不仅增加编程复杂度,而且容易导致莫名其妙的错误。

Python虽然语法上支持多继承,但是却不推荐使用多继承,而是推荐使用单继承,这样可以保证编程思路更清晰,也可以避免不必要的麻烦。

当以一个子类有多个直接父类时,该子类会继承得到所有父类的方法,但是如果其中有多个父类包含同名方法会发生什么?此时排在前面的父类中的方法会“遮蔽”后面父类中的方法。

栗子如下:

#coding=utf-8
class Item:
  def info(self):
    print("Item中的方法",'这是一个商品')

class Product:
  def info(self):
    print('Product中的方法','这是一个能赚钱的商品')

class Computer(Item,Product):
  pass

c = Computer()
c.info()

解释:控制台打印的是Item类中的方法,所以说子类所继承的父类中的方法,如果存在同名,前面的会“遮蔽”后面的即前面的直接父类优先级高于后面的。

以上就是python支持多继承吗的详细内容,更多关于python是否支持多继承的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
浅谈django orm 优化
Aug 18 Python
使用python将请求的requests headers参数格式化方法
Jan 02 Python
使用celery执行Django串行异步任务的方法步骤
Jun 06 Python
Python 实现一个手机号码获取妹子名字的功能
Sep 25 Python
Python SELENIUM上传文件或图片实现过程
Oct 28 Python
Python数据可视化:箱线图多种库画法
Nov 06 Python
Python的pygame安装教程详解
Feb 10 Python
简单了解Python write writelines区别
Feb 27 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
Mar 02 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
May 15 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
Sep 03 Python
python 基于Apscheduler实现定时任务
Dec 15 Python
python和php哪个容易学
Jun 19 #Python
基于Keras中Conv1D和Conv2D的区别说明
Jun 19 #Python
Python魔术方法专题
Jun 19 #Python
关于Theano和Tensorflow多GPU使用问题
Jun 19 #Python
如何对python的字典进行排序
Jun 19 #Python
浅谈Python中的继承
Jun 19 #Python
python程序需要编译吗
Jun 19 #Python
You might like
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
PHP输出日历表代码实例
2015/03/27 PHP
ucenter中词语过滤原理分析
2016/07/13 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
window.showModalDialog使用手册
2007/01/11 Javascript
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
Mootools 1.2教程 同时进行多个形变动画
2009/09/15 Javascript
jquery中实现标签切换效果的代码
2011/03/01 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
再谈JavaScript异步编程
2016/01/27 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
2018/01/08 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
Python切片操作实例分析
2018/03/16 Python
python实现校园网自动登录的示例讲解
2018/04/22 Python
python+POP3实现批量下载邮件附件
2018/06/19 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
Python2与Python3的区别点整理
2019/12/12 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
python能做哪些生活有趣的事情
2020/09/09 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
大学军训自我鉴定
2013/12/15 职场文书
国庆节文艺活动方案
2014/02/03 职场文书
五一活动标语
2014/06/30 职场文书
妈妈活动方案
2014/08/15 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
2015年物资管理工作总结
2015/05/20 职场文书
中秋节祝酒词
2015/08/12 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server