class - python オブジェクト指向 本 - Pythonでは静的なクラス変数は可能ですか?

Python class object 継承 / python / oop / static / class-variables

Pythonでクラスの変数やメソッドを静的にすることはできますか?そのためにはどのような構文が必要ですか?

Georgy



Answer #1

静的変数:クラスレベルで宣言された変数は静的変数と呼ばれ、クラス名を使用して直接アクセスできます。

    >>> class A:
        ...my_var = "shagun"

    >>> print(A.my_var)
        shagun

インスタンス変数:クラスのインスタンスによって関連付けられ、アクセスされる変数は、インスタンス変数です。

   >>> a = A()
   >>> a.my_var = "pruthi"
   >>> print(A.my_var,a.my_var)
       shagun pruthi

しかし、Pythonでは静的メソッドが非静的メソッドを呼び出すことはできないことを覚えておいてください。

    >>> class A:
   ...     @staticmethod
   ...     def my_static_method():
   ...             print("Yippey!!")
   ... 
   >>> A.my_static_method()
   Yippey!!