Python基礎

Pythonのクラスメソッドとスタティックメソッドの使用方法をまとめました

Pythonの基本・入門講座リスト

クラスメソッドの使い方

pythonのメソッドには、クラスメソッドというクラスをインスタンス化せずに実行することができるメソッドがあります。

クラスメソッドは、第一引数がクラスオブジェクトになります。

class Spam:
  @classmethod
  #↑クラスメソッドとして定義
  def clsmethod(cls):
  #↑クラスメソッドは第一引数をclsにします。

また、クラスメソッドは、クラス変数にアクセスすることはできますが、初期化されていないため、インスタンス変数にはアクセスできません。

 

スタティックメソッドの使い方

pythonのスタティックメソッドは、クラスメソッドとよく似ていますが、第一引数に特になにも指定する必要がなく、インスタンスメソッドやクラスメソッドのように、インスタンスやクラスが渡されることもありません。

以下のように宣言します。

class class_a:

  @static_method
  #↑static_methodの定義
  def method_a(arg):

    pass

スタティックメソッドから、インスタンス変数やクラス変数にはアクセスすることができません。

スタティックメソッドもクラスメソッドもインスタンスから呼び出すことができます。