1. 程式人生 > 其它 >python中的類(3)-類方法/靜態方法

python中的類(3)-類方法/靜態方法

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, 不可以呼叫類變數