python支持多繼承嗎
大部分面向?qū)ο蟮木幊陶Z言(除了C++)都只支持單繼承,而不支持多繼承,為什么呢?因?yàn)槎嗬^承不僅增加編程復(fù)雜度,而且容易導(dǎo)致莫名其妙的錯(cuò)誤。
Python雖然語法上支持多繼承,但是卻不推薦使用多繼承,而是推薦使用單繼承,這樣可以保證編程思路更清晰,也可以避免不必要的麻煩。
當(dāng)以一個(gè)子類有多個(gè)直接父類時(shí),該子類會(huì)繼承得到所有父類的方法,但是如果其中有多個(gè)父類包含同名方法會(huì)發(fā)生什么?此時(shí)排在前面的父類中的方法會(huì)“遮蔽”后面父類中的方法。
栗子如下:
#coding=utf-8 class Item: def info(self): print("Item中的方法",'這是一個(gè)商品') class Product: def info(self): print('Product中的方法','這是一個(gè)能賺錢的商品') class Computer(Item,Product): pass c = Computer() c.info()
控制臺(tái)打印如下:
Item中的方法,這是一個(gè)商品
解釋:控制臺(tái)打印的是Item類中的方法,所以說子類所繼承的父類中的方法,如果存在同名,前面的會(huì)“遮蔽”后面的即前面的直接父類優(yōu)先級(jí)高于后面的。
Python關(guān)于多繼承知識(shí)點(diǎn)擴(kuò)展:
大部分面向?qū)ο蟮木幊陶Z言(除了C++)都只支持單繼承,而不支持多繼承,為什么呢?因?yàn)槎嗬^承不僅增加編程復(fù)雜度,而且容易導(dǎo)致莫名其妙的錯(cuò)誤。
Python雖然語法上支持多繼承,但是卻不推薦使用多繼承,而是推薦使用單繼承,這樣可以保證編程思路更清晰,也可以避免不必要的麻煩。
當(dāng)以一個(gè)子類有多個(gè)直接父類時(shí),該子類會(huì)繼承得到所有父類的方法,但是如果其中有多個(gè)父類包含同名方法會(huì)發(fā)生什么?此時(shí)排在前面的父類中的方法會(huì)“遮蔽”后面父類中的方法。
栗子如下:
#coding=utf-8 class Item: def info(self): print("Item中的方法",'這是一個(gè)商品') class Product: def info(self): print('Product中的方法','這是一個(gè)能賺錢的商品') class Computer(Item,Product): pass c = Computer() c.info()
解釋:控制臺(tái)打印的是Item類中的方法,所以說子類所繼承的父類中的方法,如果存在同名,前面的會(huì)“遮蔽”后面的即前面的直接父類優(yōu)先級(jí)高于后面的。
以上就是python支持多繼承嗎的詳細(xì)內(nèi)容,更多關(guān)于python是否支持多繼承的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章

Django ValuesQuerySet轉(zhuǎn)json方式

python實(shí)現(xiàn)一個(gè)函數(shù)版的名片管理系統(tǒng)過程解析

Python遞歸遍歷列表及輸出的實(shí)現(xiàn)方法

Python利用matplotlib實(shí)現(xiàn)制作動(dòng)態(tài)條形圖

解決python將xml格式文件轉(zhuǎn)換成txt文件的問題(xml.etree方法)

詳解用Pytest+Allure生成漂亮的HTML圖形化測(cè)試報(bào)告