Python 中的靜態類
Hemank Mehtani
2023年1月30日
靜態類是程式設計中的一個方便的特性。靜態類不能被繼承,也不能被例項化。沒有直接的方法可以使類成為靜態。在 Python 中,我們可以通過將其方法和變數設為靜態來實現靜態類。
在本文中,我們將實現此類方法。
在 Python 中使用 @staticmethod
裝飾器建立靜態類
為了實現一個靜態類,我們可以將它的方法和變數設為靜態。為此,我們可以使用@staticmethod
裝飾器在靜態類中建立方法。裝飾器是在函式之前指定的特殊函式,並將整個函式作為引數。
例如,
class abc(object):
@staticmethod
def static_method():
print("Hi,this tutorial is about static class in python")
abc.static_method()
輸出:
Hi,this tutorial is about static class in python
請注意,此方法僅適用於高於 2.6 的 Python 版本。
在 Python 中使用 @classmethod
裝飾器建立靜態類
@classmethod
可以使類的方法靜態化,而不是其物件的靜態方法。與@staticmethod
裝飾器相比,它有幾個優點。它還可以與子類一起使用並可以修改類狀態。
但是,它需要在名為 cls
的方法中包含一個強制引數。
請參考以下程式碼。
class abc(object):
@classmethod
def static_method(cls):
print("Hi,this tutorial is about static class in python")
abc.static_method()
輸出:
Hi,this tutorial is about static class in python
在 Python 中使用模組檔案建立靜態類
在 Python 中,實現靜態類的最好方法可能是建立一個模組。我們可以匯入一個模組,並且可以使用模組名稱訪問其功能。它不需要例項化任何物件,也不能被繼承。
請參考以下示例。
def static_method():
print("Hi this is the content of the module file")
上面的程式碼可以是 Python 指令碼中的一個簡單函式,可以作為模組匯入。
例如,如果上面的 Python 指令碼的名稱是 abc.py
,我們可以執行如下所示的操作。
import abc
abc.static_method()
輸出:
Hi,this tutorial is about static class in python