Python の静的クラス変数
Python の静的変数は、定義されたクラス内で宣言されているが、メソッド内では宣言されていない変数です。この変数は、それが定義されているクラスを介して呼び出すことができますが、直接呼び出すことはできません。静的変数はクラス変数とも呼ばれます。これらの変数はクラスに限定されているため、オブジェクトの状態を変更することはできません。
このチュートリアルでは、Python で静的変数を定義するさまざまな方法を示します。
Python で staticmethod()
を使用して静的変数を定義する
Python の staticmethod()
は、特定の関数の静的変数を返すために使用される組み込み関数です。
このメソッドは、Python で静的変数を定義する古い方法と見なされています。
例:
class StaticVar:
def random(text):
print(text)
print("This class will print random text.")
StaticVar.random = staticmethod(StaticVar.random)
StaticVar.random("This is a random class.")
出力:
This is a random class.
This class will print random text.
ここでは、まず、StaticVar
というクラスを作成します。プログラムでは、staticmethod()
関数を使用して、random
という変数をクラス外の静的変数として宣言します。これにより、StaticVar
クラスを使用して random()
を直接呼び出すことができます。
Python で@staticmethod
を使用して静的変数を定義する
@staticmethod
は、静的変数を定義するための最新の最も使用されている方法です。@staticmethod
は Python に組み込まれているデコレータです。デコレータは、初期構造を変更せずに既存のオブジェクトに新しい機能を作成するために使用される Python で設計されたパターンです。したがって、 @staticmethod
デコレータは、Python のクラス内で静的変数を定義するために使用されます。
例:
class StaticVar:
@staticmethod
def random(text):
# show custom message
print(text)
print("This class will print random text.")
StaticVar.random("This is a random class.")
出力:
This is a random class.
This class will print random text.
静的変数 random
を定義する前に、@staticmethod
デコレータが定義されていることに注意してください。このため、StaticVar
クラスを使用して、最後に random
変数を簡単に呼び出すことができます。
また、どちらのメソッドでも、random
変数を定義するときに関数の属性とメソッドにアクセスするために使用される self
引数を使用しないことに注意してください。これは、静的変数がオブジェクトを介して動作することは決してないためです。
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn