この問題を絞り込むのに少し時間がかかりましたが、Pythonがこの1つの目的を果たしているようです。誰かがなぜこれが起こっているのか、これを解決するために何ができるのかを誰かが説明できますか?Pythonモジュール/クラス変数出血
ファイル:ライブラリ/ testModule.py
class testClass:
myvars = dict()
def __getattr__(self, k):
if self.myvars.has_key(k):
return self.myvars[k]
def __setattr__(self, k, v):
self.myvars[k] = v
def __str__(self):
l = []
for k, v in self.myvars.iteritems():
l.append(str(k) + ":" + str(v))
return " - ".join(l)
test.py
from library import testModule
#I get the same result if I instantiate both classes one after another
c1 = testClass()
c1.foo = "hello"
c2 = testClass()
print("c1: " + str(c1) + "\n")
print("c2: " + str(c2) + "\n")
出力:
c1: foo:hello
c2: foo:hello
私の最高の推測であることlibrary
が"__init__.py"
ファイルを持っているので、モジュール全体がクラスオブジェクトのように読み込まれ、現在は永続オブジェクトの一部となっています..これはこの場合ですか?
これはクラス/インスタンス変数の問題であり、モジュールとは関係がないため、質問のタイトルを改訂できますか? –