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 相关文章推荐
Python实现从URL地址提取文件名的方法
May 15 Python
Python通过DOM和SAX方式解析XML的应用实例分享
Nov 16 Python
Pipenv一键搭建python虚拟环境的方法
May 22 Python
Python装饰器用法实例总结
May 26 Python
深入浅析Python科学计算库Scipy及安装步骤
Oct 12 Python
Python any()函数的使用方法
Oct 28 Python
Python搭建HTTP服务过程图解
Dec 14 Python
python 实现提取log文件中的关键句子,并进行统计分析
Dec 24 Python
Python基础之函数基本用法与进阶详解
Jan 02 Python
Python应用实现双指数函数及拟合代码实例
Jun 19 Python
Python 制作查询商品历史价格的小工具
Oct 20 Python
python spilt()分隔字符串的实现示例
May 21 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
调频问题解答
2021/03/01 无线电
配置php.ini实现PHP文件上传功能
2014/11/27 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
php使用GD2绘制几何图形示例
2017/02/15 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
一个用js实现的页内搜索代码
2007/05/23 Javascript
一个符号插入器 中用到的js代码
2007/09/04 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
Node.js编写组件的三种实现方式
2016/02/25 Javascript
js a标签点击事件
2017/03/30 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
nodejs操作mongodb的增删改查功能实例
2017/11/09 NodeJs
微信小程序wx.previewImage预览图片实例详解
2017/12/07 Javascript
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
pytorch使用指定GPU训练的实例
2019/08/19 Python
pytorch 归一化与反归一化实例
2019/12/31 Python
深入浅析Python 函数注解与匿名函数
2020/02/24 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
生物有机护肤品:Aurelia Probiotic Skincare
2018/01/31 全球购物
护士自荐信
2013/10/25 职场文书
给同事的道歉信
2014/01/11 职场文书
表彰先进集体通报
2014/01/12 职场文书
网络信息安全承诺书
2014/03/26 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书
消防验收申请报告
2015/05/15 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书