python支持多繼承嗎
大部分面向?qū)ο蟮木幊陶Z(yǔ)言(除了C++)都只支持單繼承,而不支持多繼承,為什么呢?因?yàn)槎嗬^承不僅增加編程復(fù)雜度,而且容易導(dǎo)致莫名其妙的錯(cuò)誤。
Python雖然語(yǔ)法上支持多繼承,但是卻不推薦使用多繼承,而是推薦使用單繼承,這樣可以保證編程思路更清晰,也可以避免不必要的麻煩。
當(dāng)以一個(gè)子類有多個(gè)直接父類時(shí),該子類會(huì)繼承得到所有父類的方法,但是如果其中有多個(gè)父類包含同名方法會(huì)發(fā)生什么?此時(shí)排在前面的父類中的方法會(huì)“遮蔽”后面父類中的方法。
栗子如下:
#coding=utf-8class 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類中的方法,所以說(shuō)子類所繼承的父類中的方法,如果存在同名,前面的會(huì)“遮蔽”后面的即前面的直接父類優(yōu)先級(jí)高于后面的。
Python關(guān)于多繼承知識(shí)點(diǎn)擴(kuò)展:
大部分面向?qū)ο蟮木幊陶Z(yǔ)言(除了C++)都只支持單繼承,而不支持多繼承,為什么呢?因?yàn)槎嗬^承不僅增加編程復(fù)雜度,而且容易導(dǎo)致莫名其妙的錯(cuò)誤。
Python雖然語(yǔ)法上支持多繼承,但是卻不推薦使用多繼承,而是推薦使用單繼承,這樣可以保證編程思路更清晰,也可以避免不必要的麻煩。
當(dāng)以一個(gè)子類有多個(gè)直接父類時(shí),該子類會(huì)繼承得到所有父類的方法,但是如果其中有多個(gè)父類包含同名方法會(huì)發(fā)生什么?此時(shí)排在前面的父類中的方法會(huì)“遮蔽”后面父類中的方法。
栗子如下:
#coding=utf-8class Item: def info(self): print('Item中的方法',’這是一個(gè)商品’)class Product: def info(self): print(’Product中的方法’,’這是一個(gè)能賺錢的商品’)class Computer(Item,Product): passc = Computer()c.info()
解釋:控制臺(tái)打印的是Item類中的方法,所以說(shuō)子類所繼承的父類中的方法,如果存在同名,前面的會(huì)“遮蔽”后面的即前面的直接父類優(yōu)先級(jí)高于后面的。
以上就是python支持多繼承嗎的詳細(xì)內(nèi)容,更多關(guān)于python是否支持多繼承的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. 利用CSS3新特性創(chuàng)建透明邊框三角2. html清除浮動(dòng)的6種方法示例3. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)4. vue實(shí)現(xiàn)將自己網(wǎng)站(h5鏈接)分享到微信中形成小卡片的超詳細(xì)教程5. 不要在HTML中濫用div6. 使用css實(shí)現(xiàn)全兼容tooltip提示框7. 詳解CSS偽元素的妙用單標(biāo)簽之美8. JavaScript數(shù)據(jù)類型對(duì)函數(shù)式編程的影響示例解析9. CSS代碼檢查工具stylelint的使用方法詳解10. Vue3使用JSX的方法實(shí)例(筆記自用)
