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中urllib模块用法实例详解
Nov 19 Python
Python中使用Flask、MongoDB搭建简易图片服务器
Feb 04 Python
对于Python编程中一些重用与缩减的建议
Apr 14 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
May 16 Python
python pcm音频添加头转成Wav格式文件的方法
Jan 09 Python
Python数据类型之Tuple元组实例详解
May 08 Python
Python实现的远程文件自动打包并下载功能示例
Jul 12 Python
由面试题加深对Django的认识理解
Jul 19 Python
Python Lambda函数使用总结详解
Dec 11 Python
Python实现在线批量美颜功能过程解析
Jun 10 Python
解决TensorFlow调用Keras库函数存在的问题
Jul 06 Python
python通配符之glob模块的使用详解
Apr 24 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
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
2008/03/28 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
Linux中为php配置伪静态
2014/12/17 PHP
php cli模式下获取参数的方法
2017/05/05 PHP
浅析php如何实现爬取数据原理
2018/09/27 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
2018/10/23 PHP
javascript 尚未实现错误解决办法
2008/11/27 Javascript
jQuery 判断元素上是否绑定了事件
2009/10/28 Javascript
jquery.jstree 增加节点的双击事件代码
2010/07/27 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
微信小程序上传图片实例
2018/05/28 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
vue实现购物车小案例
2019/09/27 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
2020/04/14 Javascript
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
Python logging设置和logger解析
2019/08/28 Python
Python使用sys.exc_info()方法获取异常信息
2020/07/23 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
索尼巴西商店:Sony巴西
2019/06/21 全球购物
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
党员干部廉洁承诺书
2014/05/28 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
办公室禁烟通知
2015/04/23 职场文书
羊脂球读书笔记
2015/06/30 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
导游词之杭州西湖
2019/09/19 职场文书
mysql配置SSL证书登录的实现
2021/09/04 MySQL