python中的類(3)-類方法/靜態方法
阿新 • • 發佈:2021-09-03
python中的類方法與靜態方法
面相物件程式設計中,類方法和靜態方法是經常用到的兩個術語。
邏輯上講:類方法是隻能由類名呼叫;靜態方法可以由類名或物件名進行呼叫。
類方法:
在python中.類方法 @classmethod 是一個函式修飾符,它表示接下來的是一個類方法,而對於平常我們見到的則叫做例項方法。
類方法的第一個引數cls,而例項方法的第一個引數是self,表示該類的一個例項。
class Test(): def __init__(self,name): self.a = name @classmethod #類方法的裝飾器,用於修飾這個方法注意 :a, 類方法不僅可以通過例項化物件呼叫還可以通過類名稱直接呼叫 b, 不能呼叫建構函式(例項方法)中的屬性變數 c,可以呼叫類變數def func(cls):#cls 代表的是class print('這是一個類方法') if __name__ == '__main__': Test.func() #類呼叫 a = Test("小王") a.func() #類的例項進行呼叫
靜態方法:
靜態方法是類中的函式,不需要例項。靜態方法主要是用來存放邏輯性的程式碼,主要是一些邏輯屬於類,但是和類本身沒有互動,
即在靜態方法中,不會涉及到類中的方法和屬性的操作。
class Test(): def __init__(self,name): self.a = name @staticmethod #裝飾器,表示他是一個靜態方法 def func(): print("這是一個靜態方法") if __name__ == '__main__': Test.func() #類呼叫 a = Test("小王") a.func() #類的例項進行呼叫
注意:
a,靜態方法中沒有預設的形
b,靜態方法需要通過裝飾@staticmethod修飾 c, 靜態方法不僅可以通過例項化物件呼叫還可以通過類名稱直接呼叫 d,不能呼叫建構函式(例項方法)中的屬性變數 e, 不可以呼叫類變數