ホームページ >バックエンド開発 >Python チュートリアル >Pythonのクラス変数とメンバー変数の使用例チュートリアル
この記事では、Python のクラス変数とメンバー変数の使い方をサンプル形式で説明しており、Python プログラミングの参考になります。皆さんの参考に共有してください。詳細は以下のとおりです。
まず次のコードを見てください:
class TestClass(object): val1 = 100 def __init__(self): self.val2 = 200 def fcn(self,val = 400): val3 = 300 self.val4 = val self.val5 = 500 if __name__ == '__main__': inst = TestClass() print TestClass.val1 print inst.val1 print inst.val2 print inst.val3 print inst.val4 print inst.val5
ここで、val1 はクラス変数であり、クラス名によって直接呼び出すことも、オブジェクトによって呼び出すこともできます。
val2 は、クラスのオブジェクトによって呼び出すことができるメンバー変数です。ここで、self の意味はインスタンス オブジェクトを表すことであるため、メンバー変数は self. の形式で指定する必要があることがわかります。
val3 はメンバー変数ではなく、関数 fcn 内の単なるローカル変数です。
val4 と val5 はどちらもメンバー変数ではありませんが、self. として指定されますが、コンストラクターでは初期化されません。
次のコードをもう一度見てください (# 記号の後のコードが実行結果です):
inst1 = TestClass() inst2 = TestClass() print TestClass.val1 # 100 print inst1.val1 # 100 inst1.val1 = 1000 print inst1.val1 # 1000 print TestClass.val1 # 100 TestClass.val1 =2000 print inst1.val1 # 1000 print TestClass.val1 # 2000 print inst2.val1 # 2000 inst3 = TestClass() print inst3.val1 # 2000クラス自体には独自のクラス変数があります (メモリに保存されます)。TestClass クラスのオブジェクトが構築されると、現在のクラス変数のコピーがオブジェクトに与えられます。オブジェクトをコピーすると、クラス変数の値が になります。さらに、オブジェクトを介してクラス変数を変更しても、誰もが独自のコピーを持っているため、他のオブジェクトのクラス変数の値には影響しません。クラス自体が所有するクラス変数の値には影響しません。クラス自体が所有するクラス変数の値は、クラス自体のみが変更できます
。 この記事で説明した例が、Python でのクラス変数とメンバー変数の使用法を誰もが理解し、習得するのに役立つことを願っています。