python類的理解與使用
1. 通俗理解類
類(英文名 class),是具有相同特性(屬性)和行為(方法)的對(duì)象(實(shí)例)的抽象模板。
從定義上來理解類,是一件非常吃力的事情,特別是對(duì)那些沒有任何基礎(chǔ)的初學(xué)者。
下面我舉例來說明類中一些關(guān)鍵術(shù)語都是什么意思:
類:動(dòng)物屬于一個(gè)類,植物屬于一個(gè)類
實(shí)例:貓和狗都屬于同一類,就是動(dòng)物類,那么貓和狗是動(dòng)物類的實(shí)例/對(duì)象。
屬性:類中所有的變量,都叫做屬性。
方法:類中的所有函數(shù),都叫做方法。
類與對(duì)象的關(guān)系就如模具和鑄件的關(guān)系,類的實(shí)例化的結(jié)果就是對(duì)象,而對(duì)象的抽象就是類,類描述了一組有相同特性(屬性)和相同行為(方法)的對(duì)象。
2. 如何定義類?
定義一個(gè)類,使用的是 class 關(guān)鍵字
下邊我定義了一個(gè) Animal 的類
class Animal:
age = 0
def __init__(self, name):
self.name = name
def run(self):
print(f"{self.name} 跑起來了")
其中
Animal 是類名
__init__ 是構(gòu)造函數(shù),用于實(shí)例的初始化
self.name 是實(shí)例屬性,age 是類屬性
run 是方法,第一個(gè)參數(shù) self 是什么意思呢?這個(gè)咱后面再講。
除了上面這種寫法外
# 第一種寫法
class Animal:
...
還有另外兩種寫法,與之是等價(jià)的
# 第二種寫法
class Animal():
...
# 第二種寫法
class Animal(object):
...
因?yàn)樵?Python 3 中,無論你是否顯示繼承自 object,Python 解釋器都會(huì)默認(rèn)你繼承 object ,這是新式類的寫法,與之對(duì)應(yīng)的是 Python 2 的經(jīng)典類寫法。
3. 如何實(shí)例化?
定義了類之后,就可以通過下邊的寫法實(shí)例化它,并訪問屬性,調(diào)用方法
>>> class Animal:
... def __init__(self, name):
... self.name = name
... def run(self):
... print(f"{self.name} 跑起來了")
...
>>>
>>> dog=Animal(name="小黑") # 實(shí)例化出 dog 對(duì)象
在實(shí)例化時(shí)傳入的參數(shù) name="小黑" 傳進(jìn)入到構(gòu)造函數(shù) __init__ 中,最終賦值 self.name 成為實(shí)例的屬性。
4. 方法的調(diào)用
實(shí)例化成對(duì)象后,如果訪問實(shí)例屬性,可以用 對(duì)象.屬性名 進(jìn)行訪問。
>>> dog=Animal(name="小黑")
>>> dog.name # 訪問屬性
'小黑'
如果要調(diào)用方法,有兩種方法
通過 對(duì)象.方法名:使用這種方法,在定義方法時(shí) self 就代表對(duì)象(dog),調(diào)用時(shí)無需再傳入了。
>>> dog=Animal(name="小黑")
>>> dog.run() # 調(diào)用方法
小黑 跑起來了
通過 類.方法名:使用這種方法,self 參數(shù)要傳入實(shí)例對(duì)象
>>> dog=Animal(name="小黑")
>>> Animal.run(dog)
小黑 跑起來了
審核編輯:符乾江
-
面向?qū)ο?/span>
+關(guān)注
關(guān)注
0文章
64瀏覽量
10251 -
python
+關(guān)注
關(guān)注
57文章
4876瀏覽量
90025
發(fā)布評(píng)論請(qǐng)先 登錄
安裝 Python VisionFive_GPIO失敗是哪里出了問題?
Python運(yùn)行本地Web服務(wù)并實(shí)現(xiàn)遠(yuǎn)程訪問
如何分辨五類六類網(wǎng)線
沒有專利的opencv-python 版本
Termux中調(diào)試圣誕樹Python代碼
Python調(diào)用API教程
termux調(diào)試python猜數(shù)字游戲
termux如何搭建python游戲
K8s存儲(chǔ)類設(shè)計(jì)與Ceph集成實(shí)戰(zhàn)
python app不能運(yùn)行怎么解決?
python入門圣經(jīng)-高清電子書(建議下載)
買水晶頭如何匹配超5類 6類7類
?如何在虛擬環(huán)境中使用 Python,提升你的開發(fā)體驗(yàn)~
零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?
python類的理解與使用
評(píng)論