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

questionAnswers(2)

yourAnswerToTheQuestion