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笔记(2)
Oct 24 Python
tornado 多进程模式解析
Jan 15 Python
一篇文章读懂Python赋值与拷贝
Apr 19 Python
pandas 转换成行列表进行读取与Nan处理的方法
Oct 30 Python
python 设置输出图像的像素大小方法
Jul 04 Python
Python安装selenium包详细过程
Jul 23 Python
python Django里CSRF 对应策略详解
Aug 05 Python
在Sublime Editor中配置Python环境的详细教程
May 03 Python
python 实现简单的计算器(gui界面)
Nov 11 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 Python
matplotlib绘制多子图共享鼠标光标的方法示例
Jan 08 Python
Python基础之元类详解
Apr 29 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
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
php递归删除目录下的文件但保留的实例分享
2014/05/10 PHP
php中curl使用指南
2015/02/05 PHP
PHP回溯法解决0-1背包问题实例分析
2015/03/23 PHP
PHP基于自定义类随机生成姓名的方法示例
2017/08/05 PHP
张孝祥JavaScript学习阶段性总结(2)--(X)HTML学习
2007/02/03 Javascript
Google韩国首页图标动画效果
2007/08/26 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
JavaScript提高加载和执行效率的方法
2017/02/03 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python中字符串类型json操作的注意事项
2017/05/02 Python
Tensorflow卷积神经网络实例进阶
2018/05/24 Python
Python 判断文件或目录是否存在的实例代码
2018/07/19 Python
python环形单链表的约瑟夫问题详解
2018/09/27 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
简单的Python调度器Schedule详解
2019/08/30 Python
python创建ArcGIS shape文件的实现
2019/12/06 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
联想英国官网:Lenovo英国
2019/07/17 全球购物
新加坡鲜花速递/新加坡网上花店:Ferns N Petals
2020/08/29 全球购物
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
个人租房协议书(范本)
2014/10/14 职场文书
水浒传读书笔记
2015/06/25 职场文书