Python: производные классы обращаются к словарю базового класса в том же месте памяти
Мне интересно, почему словарь, который определен в базовом классе и доступен из производных классов, очевидно, присутствует только в одной ячейке памяти. Краткий пример:
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
Почему звонит & quot; add_dict_entry & quot; объекта1 влияют на словарь объекта2? Использование целых чисел («приращение») на переменную базового класса не влияет.
Большое спасибо.
Лоренц