やったこと
非常に初歩的なことですが、Pythonのクラスのメンバ変数を外から変更する方法について備忘録としてまとめました。
コード
まず、test1.py
にクラスの情報を記述します。
test1.py
class TestClass01:
#メンバ変数
value1 = 50
そしてそのメンバ変数であるvalue1
をtest2.py
から変更してみます。
test2.py
import test1
class1 = test1.TestClass01()
print(class1.value1)
test1.TestClass01.value1 = 40
class2 = test1.TestClass01()
print(class2.value1)
print(class1.value1)
test1.TestClass01.value1
というような形で直にメンバ変数にアクセスしています。
実行結果
50
40
40
このようになりました。
一番初めにTestClass01
から作ったインスタンスであるclass1
のvalue1
は当然ながら初めに定義された通り50
となっています。
test1.TestClass01.value1 = 40
にてメンバ変数を変更した後に作成したインスタンスであるclass2
のvalue1
は40
になっていますね。これでクラスのメンバ変数を直接変更できることが確認できました。
その後、再度class1.value1
を呼び出していますが、ここでvalue1
が40
になっていますね。メンバ変数の変更前に作成したインスタンスもその影響を受けるということがわかりましたね。