Python の静的クラス変数

Lakshay Kapoor 2023年1月30日
  1. Python で staticmethod() を使用して静的変数を定義する
  2. Python で@staticmethod を使用して静的変数を定義する
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
Lakshay Kapoor avatar Lakshay Kapoor avatar

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

関連記事 - Python Class