久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

python支持多繼承嗎

瀏覽:144日期:2022-07-20 11:04:11

大部分面向?qū)ο蟮木幊陶Z言(除了C++)都只支持單繼承,而不支持多繼承,為什么呢?因為多繼承不僅增加編程復(fù)雜度,而且容易導(dǎo)致莫名其妙的錯誤。

Python雖然語法上支持多繼承,但是卻不推薦使用多繼承,而是推薦使用單繼承,這樣可以保證編程思路更清晰,也可以避免不必要的麻煩。

當(dāng)以一個子類有多個直接父類時,該子類會繼承得到所有父類的方法,但是如果其中有多個父類包含同名方法會發(fā)生什么?此時排在前面的父類中的方法會“遮蔽”后面父類中的方法。

栗子如下:

#coding=utf-8class Item: def info(self): print('Item中的方法',’這是一個商品’) class Product: def info(self): print(’Product中的方法’,’這是一個能賺錢的商品’) class Computer(Item,Product): pass c = Computer()c.info()

控制臺打印如下:

Item中的方法,這是一個商品

解釋:控制臺打印的是Item類中的方法,所以說子類所繼承的父類中的方法,如果存在同名,前面的會“遮蔽”后面的即前面的直接父類優(yōu)先級高于后面的。

Python關(guān)于多繼承知識點擴展:

大部分面向?qū)ο蟮木幊陶Z言(除了C++)都只支持單繼承,而不支持多繼承,為什么呢?因為多繼承不僅增加編程復(fù)雜度,而且容易導(dǎo)致莫名其妙的錯誤。

Python雖然語法上支持多繼承,但是卻不推薦使用多繼承,而是推薦使用單繼承,這樣可以保證編程思路更清晰,也可以避免不必要的麻煩。

當(dāng)以一個子類有多個直接父類時,該子類會繼承得到所有父類的方法,但是如果其中有多個父類包含同名方法會發(fā)生什么?此時排在前面的父類中的方法會“遮蔽”后面父類中的方法。

栗子如下:

#coding=utf-8class Item: def info(self): print('Item中的方法',’這是一個商品’)class Product: def info(self): print(’Product中的方法’,’這是一個能賺錢的商品’)class Computer(Item,Product): passc = Computer()c.info()

解釋:控制臺打印的是Item類中的方法,所以說子類所繼承的父類中的方法,如果存在同名,前面的會“遮蔽”后面的即前面的直接父類優(yōu)先級高于后面的。

以上就是python支持多繼承嗎的詳細內(nèi)容,更多關(guān)于python是否支持多繼承的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 永和县| 江北区| 运城市| 宜兴市| 沭阳县| 于都县| 淮南市| 乌鲁木齐市| 奉新县| 洪泽县| 宜章县| 张家口市| 夏河县| 松溪县| 开远市| 白城市| 岗巴县| 蓝田县| 历史| 遂溪县| 汝阳县| 富裕县| 广饶县| 育儿| 浦北县| 徐汇区| 堆龙德庆县| 南阳市| 宁德市| 诸暨市| 哈巴河县| 永清县| 营口市| 南投市| 胶南市| 金湖县| 湖南省| 乌鲁木齐县| 昌都县| 怀化市| 四会市|