Python 静态方法

Python 靜態方法

在這篇快速文章中,我們將學習如何創建和使用 Python 的靜態方法。我們還將看一下相比於實例方法,靜態方法提供了什麼優缺點。讓我們開始吧。

什麼是靜態方法?

Python 中的靜態方法與類級別方法非常相似,不同之處在於靜態方法綁定到類而不是該類的對象。這意味著可以在沒有該類對象的情況下調用靜態方法。這也意味著靜態方法無法修改對象的狀態,因為它們不與對象綁定。讓我們看看如何在 Python 中創建靜態方法。

創建 Python 靜態方法

Python 靜態方法可以通過兩種方式創建。讓我們在這裡看看每種方式:

使用staticmethod()

讓我們直接跳到如何使用staticmethod()方法的示例代碼片段:

class Calculator:

    def addNumbers(x, y):
        return x + y

# 創建addNumbers靜態方法
Calculator.addNumbers = staticmethod(Calculator.addNumbers)

print('Product:', Calculator.addNumbers(15, 110))

請注意,我們在沒有對象的情況下調用了我們創建的addNumbers。當我們運行此程序時,我們將獲得以下輸出:這裡沒有什麼驚喜。這種方法是可控的,因為在每個地方,都可以將類方法轉換為靜態方法。讓我們看一下另一種使用相同示例的方法。

使用@staticmethod

這是一種更微妙的創建靜態方法的方式,因為我們不必依賴於聲明方法是類方法並在每個地方將其轉換為靜態方法。讓我們在代碼片段中使用此註釋:

class Calculator:

    # 創建addNumbers靜態方法
    @staticmethod
    def addNumbers(x, y):
        return x + y

print('Product:', Calculator.addNumbers(15, 110))

當我們執行這個程式時,我們會得到以下輸出: 這實際上是創建靜態方法的一個更好的方法,因為一旦我們創建並標記了它為@staticmethod註釋,保持方法靜態的意圖就很清楚了。

Python靜態方法的優勢

靜態方法有一個非常明確的用例。當我們需要某些功能不關於一個對象,而是關於整個類時,我們會創建一個靜態方法。當我們需要創建實用方法時,這就非常有利,因為它們通常不與對象的生命周期綁定。最後,請注意,在靜態方法中,我們不需要將self作為第一個參數傳遞。API參考:Python文件

Source:
https://www.digitalocean.com/community/tutorials/python-static-method