pythonのクラス変数とインスタンス変数
707 ワード
実際、名前からpythonのクラス変数とインスタンス変数の違いがわかります.
クラス変数:
は、クラスのすべてのインスタンス間で共有できる値です(つまり、各インスタンスに個別に割り当てられているわけではありません).例えば次の例ではnum_of_instanceはクラス変数であり、Testのインスタンスがどれだけ存在するかを追跡するために使用されます.
インスタンス変数:
インスタンス化後、各インスタンスが個別に持つ変数.
結果は次のとおりです.
>>> 0 1 jack 2 lucy 2
>>>
クラス変数:
は、クラスのすべてのインスタンス間で共有できる値です(つまり、各インスタンスに個別に割り当てられているわけではありません).例えば次の例では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
>>>