Python: clases derivadas acceden al diccionario de la clase base en la misma ubicación de memoria
Me pregunto por qué un diccionario, que se define en una clase base y se accede desde clases derivadas, obviamente está presente solo en una ubicación de memoria. Un breve ejemplo:
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)
y la salida es:
{'first': 1}
0
¿Por qué una llamada al "add_dict_entry" de object1 afecta el diccionario de object2? Usando enteros ("incremento") la variable de clase base no se ve afectada.
Muchas gracias.
Lorenz