python支持多繼承嗎
大部分面向對象的編程語言(除了C++)都只支持單繼承,而不支持多繼承,為什么呢?因為多繼承不僅增加編程復雜度,而且容易導致莫名其妙的錯誤。
Python雖然語法上支持多繼承,但是卻不推薦使用多繼承,而是推薦使用單繼承,這樣可以保證編程思路更清晰,也可以避免不必要的麻煩。
當以一個子類有多個直接父類時,該子類會繼承得到所有父類的方法,但是如果其中有多個父類包含同名方法會發生什么?此時排在前面的父類中的方法會“遮蔽”后面父類中的方法。
栗子如下:
#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類中的方法,所以說子類所繼承的父類中的方法,如果存在同名,前面的會“遮蔽”后面的即前面的直接父類優先級高于后面的。
Python關于多繼承知識點擴展:
大部分面向對象的編程語言(除了C++)都只支持單繼承,而不支持多繼承,為什么呢?因為多繼承不僅增加編程復雜度,而且容易導致莫名其妙的錯誤。
Python雖然語法上支持多繼承,但是卻不推薦使用多繼承,而是推薦使用單繼承,這樣可以保證編程思路更清晰,也可以避免不必要的麻煩。
當以一個子類有多個直接父類時,該子類會繼承得到所有父類的方法,但是如果其中有多個父類包含同名方法會發生什么?此時排在前面的父類中的方法會“遮蔽”后面父類中的方法。
栗子如下:
#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類中的方法,所以說子類所繼承的父類中的方法,如果存在同名,前面的會“遮蔽”后面的即前面的直接父類優先級高于后面的。
以上就是python支持多繼承嗎的詳細內容,更多關于python是否支持多繼承的資料請關注好吧啦網其它相關文章!
相關文章:
1. JavaScript Tab菜單實現過程解析2. 解決Python paramiko 模塊遠程執行ssh 命令 nohup 不生效的問題3. 存儲于xml中需要的HTML轉義代碼4. javascript設計模式 ? 建造者模式原理與應用實例分析5. ASP.NET MVC通過勾選checkbox更改select的內容6. Python使用oslo.vmware管理ESXI虛擬機的示例參考7. ThinkPHP5 通過ajax插入圖片并實時顯示(完整代碼)8. Android實現圖片自動切換功能(實例代碼詳解)9. jsp+mysql實現網頁的分頁查詢10. javascript xml xsl取值及數據修改第1/2頁
