Python クラス クラス変数とクラスメソッド

同じクラスで共有する変数をクラス変数と呼ぶ。

class T(object):
    words=[]
    def add_word(self,word):
        self.words.append(word)

このとき、wordsは同クラスで共有される。

クラス変数への書き込み

共有したくないならば、インスタンス変数とする。

class T(object):
    word='T'
    def __init__(self):
        self.words=[]
    def add_word(self,word):
        self.words.append(word)
クラス変数とインスタンス変数

クラス変数は、オブジェクトとして作成する以前に呼び出せる。
A ,B,CをクラスTのオブジェクトとして作成し、Dをクラスとして作成せずに呼び出す。

クラスメソッド

クラス変数はDカラでも呼び出せるが、インスタンス変数はDでは呼び出せない。
 一方で、オブジェクトとして作成する前にクラス関数にアクセスしたい場合は、関数前に@classmethodをつけ、引数にはselfではなくclsを入れる。

class T(object):
    word='T'
    def __init__(self):
        self.words=[]
    def add_word(self,word):
        self.words.append(word)
    @classmethod
    def get_classword(cls):
        return cls.word

この記事が気に入ったらサポートをしてみませんか?