- 子類化內(nèi)置類型的優(yōu)缺點(diǎn)
- 多重繼承的順序和方法的解析順序
注意:內(nèi)置類型(使用C語(yǔ)言編寫(xiě))不會(huì)調(diào)用用戶定義的類覆蓋方法
不要子類化內(nèi)置類型赂乐,用戶自己定義的類應(yīng)該繼承collections模塊中的類,例如:UserDict,UserList,UserString咖气,這些類做了特殊的設(shè)計(jì)挨措,因此易于擴(kuò)展
繼承順序:類都有一個(gè)名為_(kāi)_mro__的屬性,它的值是一個(gè)元祖崩溪,按照方法解析順序列出各個(gè)超類浅役,從當(dāng)前類一直向上伶唯,知道object類
處理多重繼承:
- 把接口繼承和實(shí)現(xiàn)繼承區(qū)分開(kāi)來(lái)
- 使用抽象基類顯式表示接口
- 通過(guò)混入重用代碼
- 在名稱中明確指明混入
- 抽象基類可以作為混入,反過(guò)來(lái)則不成立
- 不要子類化多個(gè)具體類
- 為用戶提供聚合類
- 優(yōu)先使用對(duì)象組合乳幸,而不是類繼承