基本クラスで定義され、派生クラスからアクセスされる辞書が、明らかに 1 つのメモリ ロケーションにしか存在しないのはなぜだろうか。簡単な例:
class BaseClass:
_testdict = dict()
_testint = 0
def add_dict_entry(self):
self._testdict["first"] = 1
def increment(self):
self._testint += 1
class Class1(BaseClass):
pass
class Class2(BaseClass):
pass
object1 = Class1()
object2 = Class2()
object1.add_dict_entry()
object1.increment()
print(object2._testdict)
print(object2._testint)
出力は次のとおりです。
{'first': 1}
0
object1 の「add_dict_entry」への呼び出しが object2 の辞書に影響するのはなぜですか? 整数 (「インクリメント」) を使用すると、基本クラスの変数は影響を受けません。
どうもありがとう。
ローレンツ