私は 3 か月間 Python を勉強してきましたが、Google を使用しても解決できなかった質問がありますが、幸運にもここで簡単に説明することができます。
私は var_class モジュールを持っています:
#var_class.py
class A(object):
def __init__(self, x):
self.x = x+2
zz = A(10)
class B():
b = 0
def __init__(self):
pass
def update(self):
B.b = zz.x
そしてメインプログラムには次のものがあります:
#main.py
from var_class import *
b_class = B()
b_class.b # I get 0 as expected
zz = A(100)
b_class.update()
b_class.b # Instead of 102, I get 12 unexpectedly
私の目標は、すべてのデータ入力に対して "zz" を頻繁に変更し、クラス変数 'b' を更新することです。var_class.py に zz = A(10) を記述した理由は、それをインポートすると、モジュール ' 「var_class」に「クラス B」の「zz」がありません。「グローバル名 zz が定義されていません」というエラーが発生します。
しかし、今こう書いていると、値「10」がクラスに引っかかっているようで、メインプログラムで変更できません。これを克服する方法がわかりません。助けてくれてありがとう。
答え:
alKid が最初に回答全体を書きました。alexvassel と C 氏にも感謝しなければなりません。彼らに感謝する方法があるかどうか知りたいです。他の人が知識を手伝ってくれました。また、たくさん感謝しています。