python四十六:继承顺序之线性顺序列表
生活随笔
收集整理的這篇文章主要介紹了
python四十六:继承顺序之线性顺序列表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python是多繼承,所以繼承多個類時,會產生查找順序的問題? 如下就是查找順序
?當類是經典類時,多繼承情況下,會按照深度優(yōu)先方式查找。
?當類是新式類時,多繼承情況下,會按照廣度優(yōu)先方式查找。(python3默認是新式類,默認繼承object類)
新式類包含了更多的功能,推薦使用新式類。 父類繼承了object類,該類就是新式類,否則是經典類。
?
? 對于定義的每一個類,python都會計算出一個方法解析順序(MRO)列表,這個MRO就是一個簡單的所有基類的線性順序列表。
?通過類.__mro__查看繼承順序
? 記住幾個原則: 1. 子類會優(yōu)先于父類被檢查. ? 2. 多個父類會根據它們在__mro__元祖中的順序被檢查. ?3. 如果對下一個類存在兩個合法的選擇,選擇第一個類,也就是說找到了一個類, 就不會再去找下一個了。
總結
以上是生活随笔為你收集整理的python四十六:继承顺序之线性顺序列表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python四十五:归一化继承
- 下一篇: python四十七:在子类中调用父类方法