Python: classes derivadas acessam o dicionário da classe base no mesmo local de memória
Eu estou querendo saber por que um dicionário, que é definido em uma classe base e é acessado a partir de classes derivadas, está obviamente presente apenas em um local de memória. Um pequeno exemplo:
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)
e a saída é:
{'first': 1}
0
Por que uma chamada para o "add_dict_entry" do objeto1 afeta o dicionário do objeto2? Usando números inteiros ("incremento"), a variável da classe base não é afetada.
Muito obrigado.
Lorenz