В Python я дважды создаю экземпляр класса и сохраняю их в 2 разных переменных. Почему второй объект содержит копию первого объекта? Я знаю, что это копия, потому что я изменяю значения в одном объекте, а другой - нет. Пример:
У меня есть следующий класс:
class HistoricalData:
dataPoints = {}
Затем я создаю экземпляр класса и заполняю dataPoints значениями:
hd1 = HistoricalData()
hd1.dataPoints["channel1"] = 1
hd1.dataPoints["channel2"] = 2
hd1.dataPoints["channel3"] = 3
Затем я снова создаю экземпляр класса и снова заполняю его значениями:
hd2 = HistoricalData()
hd2.dataPoints["channel1"] = 10
Когда я печатаю значения из hd1.dataPoints и hd2.dataPoints, я получаю следующее:
{'channel1': 1, 'channel2': 2, 'channel3': 3}
{'channel1': 10, 'channel2': 2, 'channel3': 3}
В словаре есть копия первого во втором объекте, потому что значение в channel1 было изменено во втором, но не в первом.
Я думал, что когда вы создаете экземпляр класса, все значения по умолчанию будут соответствовать значениям, определенным в классе. Я что-то упустил?