1. ホーム 
  2. 備忘録 
  3. Python

クラスメソッド

クラスメソッドについて

変数にインスタンス変数とクラス変数があるように、メソッドにもインスタンスメソッドとクラスメソッドがある

インスタンスメソッドは、インスタンス化されたオブジェクトを経由しなければ呼び出すことができないメソッドだが、クラスメソッドはインスタンス化せずともクラスから直接呼び出すことができる

クラスメソッドはメソッドの定義の上に @classmethod とデコレータをつけることで使用することができる

また、クラスメソッドは第一引数に、インスタンスを示す self ではなくクラスを示す cls を受け取る

具体的な例を以下に記載する

lesson.py

class T(object):
    text = 'Hello,World'

    @classmethod
    def sample_method(cls):
        print(cls.text)

t = T()
# クラスメソッドの呼び出しは クラス名.メソッド名
T.sample_method()  # Hello,World
# インスタンス経由でも同様に呼び出せる
t.sample_method()  # Hello,World