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中的mock库对Python代码进行模拟测试
Apr 16 Python
请不要重复犯我在学习Python和Linux系统上的错误
Dec 12 Python
Python实现的简单模板引擎功能示例
Sep 02 Python
Python使用pickle模块存储数据报错解决示例代码
Jan 26 Python
python爬虫爬取淘宝商品信息
Feb 23 Python
详解python中的装饰器
Jul 10 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
Feb 21 Python
网易有道2017内推编程题 洗牌(python)
Jun 19 Python
基于python中__add__函数的用法
Nov 25 Python
python 实现快速生成连续、随机字母列表
Nov 28 Python
Selenium 安装和简单使用的实现
Dec 04 Python
python实现三种随机请求头方式
Jan 05 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目录操作函数之获取目录与文件的类型
2010/12/29 PHP
PHP时间格式控制符对照表分享
2013/07/23 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
yii2局部关闭(开启)csrf的验证的实例代码
2017/07/10 PHP
jsonp原理及使用
2013/10/28 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
2014/12/16 Javascript
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
如何解决hover在ie6中的兼容性问题
2016/12/15 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
2017/05/26 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
Vue实现页面添加水印功能
2019/11/09 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
2018/10/11 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
Python微信操控itchat的方法
2019/05/31 Python
int在python中的含义以及用法
2019/06/27 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
用pushplus+python监控亚马逊到货动态推送微信
2021/01/29 Python
初中生学习的自我评价
2013/11/14 职场文书
父亲八十大寿答谢词
2014/01/23 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
个人授权委托书范本
2014/04/03 职场文书
2014年党务公开方案
2014/05/08 职场文书
村道德模范事迹材料
2014/08/28 职场文书
个人自荐书范文
2015/03/09 职场文书
部门主管竞聘书
2015/09/15 职场文书
初中政治教师教学反思
2016/02/23 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
uniapp引入支付宝原生扫码插件步骤详解
2022/07/23 Javascript