python類的理解與使用
1. 通俗理解類
類(英文名 class),是具有相同特性(屬性)和行為(方法)的對象(實例)的抽象模板。
從定義上來理解類,是一件非常吃力的事情,特別是對那些沒有任何基礎(chǔ)的初學(xué)者。
下面我舉例來說明類中一些關(guān)鍵術(shù)語都是什么意思:
類:動物屬于一個類,植物屬于一個類
實例:貓和狗都屬于同一類,就是動物類,那么貓和狗是動物類的實例/對象。
屬性:類中所有的變量,都叫做屬性。
方法:類中的所有函數(shù),都叫做方法。
類與對象的關(guān)系就如模具和鑄件的關(guān)系,類的實例化的結(jié)果就是對象,而對象的抽象就是類,類描述了一組有相同特性(屬性)和相同行為(方法)的對象。
2. 如何定義類?
定義一個類,使用的是 class 關(guān)鍵字
下邊我定義了一個 Animal 的類
class Animal:
age = 0
def __init__(self, name):
self.name = name
def run(self):
print(f"{self.name} 跑起來了")
其中
Animal
是類名
__init__
是構(gòu)造函數(shù),用于實例的初始化
self.name
是實例屬性,age
是類屬性
run
是方法,第一個參數(shù) self 是什么意思呢?這個咱后面再講。
除了上面這種寫法外
# 第一種寫法
class Animal:
...
還有另外兩種寫法,與之是等價的
# 第二種寫法
class Animal():
...
# 第二種寫法
class Animal(object):
...
因為在 Python 3 中,無論你是否顯示繼承自 object,Python 解釋器都會默認(rèn)你繼承 object ,這是新式類的寫法,與之對應(yīng)的是 Python 2 的經(jīng)典類寫法。
3. 如何實例化?
定義了類之后,就可以通過下邊的寫法實例化它,并訪問屬性,調(diào)用方法
>>> class Animal:
... def __init__(self, name):
... self.name = name
... def run(self):
... print(f"{self.name} 跑起來了")
...
>>>
>>> dog=Animal(name="小黑") # 實例化出 dog 對象
在實例化時傳入的參數(shù) name="小黑"
傳進(jìn)入到構(gòu)造函數(shù) __init__
中,最終賦值 self.name
成為實例的屬性。
4. 方法的調(diào)用
實例化成對象后,如果訪問實例屬性,可以用 對象.屬性名
進(jìn)行訪問。
>>> dog=Animal(name="小黑")
>>> dog.name # 訪問屬性
'小黑'
如果要調(diào)用方法,有兩種方法
通過 對象.方法名
:使用這種方法,在定義方法時 self 就代表對象(dog),調(diào)用時無需再傳入了。
>>> dog=Animal(name="小黑")
>>> dog.run() # 調(diào)用方法
小黑 跑起來了
通過 類.方法名
:使用這種方法,self 參數(shù)要傳入實例對象
>>> dog=Animal(name="小黑")
>>> Animal.run(dog)
小黑 跑起來了
審核編輯:符乾江
-
面向?qū)ο?/span>
+關(guān)注
關(guān)注
0文章
64瀏覽量
9969 -
python
+關(guān)注
關(guān)注
54文章
4758瀏覽量
84289
發(fā)布評論請先 登錄
相關(guān)推薦
評論