pythonのクラス変数とインスタンス変数

707 ワード

実際、名前からpythonのクラス変数とインスタンス変数の違いがわかります.
クラス変数:
は、クラスのすべてのインスタンス間で共有できる値です(つまり、各インスタンスに個別に割り当てられているわけではありません).例えば次の例ではnum_of_instanceはクラス変数であり、Testのインスタンスがどれだけ存在するかを追跡するために使用されます.
インスタンス変数:
インスタンス化後、各インスタンスが個別に持つ変数.
class Test(object):
    num_of_instance = 0
    def __init__(self, name):
        self.name = name
        Test.num_of_instance += 1

if __name__ == '__main__':
    print Test.num_of_instance
    t1 = Test('jack')
    print Test.num_of_instance
    t2 = Test('lucy')
    print t1.name , t1.num_of_instance
    print t2.name , t2.num_of_instance 

結果は次のとおりです.
>>> 0 1 jack 2 lucy 2
>>>