python中的類方法與靜態方法
面相對象程序設計中,類方法和靜態方法是經常用到的兩個術語。
邏輯上講:類方法是只能由類名調用;靜態方法可以由類名或對象名進行調用。
類方法:
在python中.類方法 @classmethod 是一個函數修飾符,它表示接下來的是一個類方法,而對於平常我們見到的則叫做實例方法。
類方法的第一個參數cls,而實例方法的第一個參數是self,表示該類的一個實例。
class Test(): def __init__(self,name): self.a = name @classmethod #類方法的裝飾器,用於修飾這個方法 def func(cls):#cls 代表的是class print('這是一個類方法') if __name__ == '__main__': Test.func() #類調用 a = Test("小王") a.func() #類的實例進行調用
注意 :a, 類方法不僅可以通過實例化對象調用還可以通過類名稱直接調用
b, 不能調用構造函數(實例方法)中的屬性變量
c,可以調用類變量
靜態方法:
靜態方法是類中的函數,不需要實例。靜態方法主要是用來存放邏輯性的代碼,主要是一些邏輯屬於類,但是和類本身沒有交互,
即在靜態方法中,不會涉及到類中的方法和屬性的操作。
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, 不可以調用類變量