やったこと
非常に初歩的なことですが、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になっていますね。メンバ変数の変更前に作成したインスタンスもその影響を受けるということがわかりましたね。