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中的方法,这是一个商品
解释:控制台打印的是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多继承以及MRO顺序的使用python多继承(钻石继承)问题和解决方法简单示例在python里面运用
多继承方法详解Python面向对象程序设计多继承和多态用法示例Python多继承原理与用法示例Python面向对象程序设计之继
评论0
最新资源