Python是一門面向對象的編程語言,它的類方法(class method)是面向對象編程中的一個重要概念,它可以讓我們處理類的一些屬性和方法。
類方法可以在類的定義中使用“@classmethod”裝飾器來聲明,它和普通方法(實例方法)相比有一個不同的參數:cls,它指的是當前調用類方法的類對象。通過cls,我們可以訪問類的屬性和方法,而不是實例的屬性和方法。
class MyClass: counter = 0 @classmethod def increase_counter(cls): cls.counter += 1 MyClass.increase_counter() print(MyClass.counter) # 輸出1
在上面的代碼中,我們定義了一個類方法“increase_counter”,它使用了cls來訪問類的屬性“counter”,而不是實例的屬性。我們調用類方法并輸出counter的值,結果是1。
除了可以訪問類的屬性和方法,類方法還有一個常見的用途是作為“工廠方法”,用來創建類的實例。比如:
class Rectangle: def __init__(self, width, height): self.width = width self.height = height @classmethod def from_square(cls, side): return cls(side, side) square = Rectangle.from_square(5) print(square.width, square.height) # 輸出5 5
在上面的代碼中,我們定義了一個類方法“from_square”,它接收一個參數“side”,用以創建一個正方形的實例。我們通過調用“from_square”方法來創建一個名為“square”的正方形實例,其寬和高都為5。
總之,類方法是Python面向對象編程的一個重要概念,它可以用來訪問類的屬性和方法,也可以作為“工廠方法”來創建類的實例。
上一篇python 類注釋規范
下一篇python 類標簽設置