Python 靜態方法
TJ Lerias
2023年1月30日
2021年7月13日
本文演示瞭如何在 Python 中建立和使用靜態方法。
Python 靜態方法
靜態方法屬於一個類;儘管如此,它並沒有繫結到那個類的物件。因此,它可以在不建立它所在類的例項的情況下被呼叫。由於靜態方法不繫結到物件,它不知道類的屬性,因此它不能訪問或修改類的屬性班上。
建立和使用 Python 靜態方法
首先,讓我們建立一個例項方法,以便將其與靜態方法區分開來。假設我們有一個 Coffee
類,它有一個名為 is_hot
的方法,它接受一個整數作為引數。如果給定的整數大於 50,則返回 True
,如果小於 50,則返回 False
。
class Coffee:
def is_hot(self, temperature):
return temperature > 50
coffee = Coffee()
print(coffee.is_hot(100))
輸出:
True
在上面的例子中,coffee
,它是 Coffee
類的一個例項,被例項化為能夠呼叫 is_hot
方法。
現在,讓我們使用 @staticmethod
裝飾器將 is_hot
變成一個靜態方法。它是一個內建的裝飾器,用於將方法定義為靜態方法。
class Coffee:
@staticmethod
def is_hot(temperature):
return temperature > 50
print(Coffee.is_hot(100))
輸出:
True
與我們在前面的示例中建立的例項方法不同,你不需要將 self
作為靜態方法的引數傳遞,也不需要建立類的例項才能使用靜態方法。你可以直接使用該過程。
或者,staticmethod()
函式可用於建立靜態方法。這是一個內建函式,它接受一個函式作為引數並將它作為靜態方法返回。
class Coffee:
def is_hot(temperature):
return temperature > 50
Coffee.is_hot = staticmethod(Coffee.is_hot)
print(Coffee.is_hot(100))
輸出:
True
靜態方法在建立獨立執行任務的實用方法時很有用,因為它不需要訪問或修改類的屬性;它僅適用於引數中傳遞的資料。
總之,我們可以通過使用@staticmethod
裝飾器或 staticmethod()
函式來建立一個靜態方法。你不需要有一個類的例項來呼叫靜態方法;我們可以簡單地直接呼叫它。