目錄
- object
- 新式類
- 舊式類
- 新式類和舊式類的區(qū)別
- 重點
- Python 2.x 中聲明類
- Python 3.x 中聲明類
object
object 是 Python 為所有對象提供的父類,默認(rèn)提供一些內(nèi)置的屬性、方法;可以使用 dir 方法查看
新式類
以 object 為父類的類,推薦使用在 Python 3.x 中定義類時,如果沒有指定父類,會默認(rèn)使用 object 作為該類的父類所以 Python 3.x 中定義的類都是新式類
舊式類
不以 object 為父類的類,不推薦使用在 Python 2.x 中定義類,如果沒有指定父類,不會使用 object 作為基類
新式類和舊式類的區(qū)別
在多繼承時,會影響到方法搜索順序 MOR
重點
為了保證編寫的代碼能夠同時在 Python2.x 和 Python 3.x 中運行建議在定義類時,如果沒有父類,也統(tǒng)一繼承 object
Python 2.x 中聲明類
舊式類
![](/d/20211017/0dd02aedcf6374c81ce4efd56df716e6.gif)
沒有繼承 object 類,只有兩個屬性、方法舊式類會使用舊的 MRO 算法,多繼承場景下,方法搜索順序會有問題MRO 詳解:Python學(xué)習(xí)之MRO方法搜索順序
新式類
![](/d/20211017/ebbd6b6bed664fc41d9f4b06983cf18f.gif)
手動繼承 object 類,擁有 object 類的屬性、方法
Python 3.x 中聲明類
默認(rèn)就是新式類
class A:
pass
a = A()
print(dir(a))
# 輸出結(jié)果
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
自動繼承 object 類,擁有 object 類的屬性、方法
到此這篇關(guān)于python學(xué)習(xí)之新式類和舊式類講解的文章就介紹到這了,更多相關(guān)python 新式類和舊式類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- python 類相關(guān)概念理解
- Python入門變量的定義及類型理解
- python入門課程第四講之內(nèi)置數(shù)據(jù)類型有哪些
- Python的內(nèi)置數(shù)據(jù)類型中的數(shù)字
- Python類的高級函數(shù)詳解
- 一篇文章帶你了解Python中的類