投稿

[Python 100日チャレンジ] Day 34 - クラス変数とクラスメソッド

Pythonのクラス変数、classmethod、staticmethodを使い、インスタンスではなくクラスに紐づく処理を学びます。

[Python 100日チャレンジ] Day 34 - クラス変数とクラスメソッド

クラス変数

クラス変数は、すべてのインスタンスで共有される値です。

1
2
3
4
5
6
class User:
    count = 0

    def __init__(self, name):
        self.name = name
        User.count += 1

classmethod

@classmethodは、クラス自身を受け取るメソッドです。慣習的に cls という名前を使います。

1
2
3
4
5
6
class User:
    count = 0

    @classmethod
    def get_count(cls):
        return cls.count

staticmethod

@staticmethodは、インスタンスにもクラスにも依存しない処理をクラス内に置きたいときに使います。

今日のゴール

インスタンスごとの状態はインスタンス変数、全体で共有する状態はクラス変数です。classmethodとstaticmethodの役割も区別しましょう。

この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。