在Python中,我实例化一个类两次并将它们存储到2个不同的变量中.为什么第二个对象包含第一个对象的副本?我知道这是一个副本,因为我更改了一个对象中的值而它没有改变另一个对象.例:
我有以下课程:
class HistoricalData:
dataPoints = {}
Run Code Online (Sandbox Code Playgroud)
然后我实例化该类并使用值填充dataPoints:
hd1 = HistoricalData()
hd1.dataPoints["channel1"] = 1
hd1.dataPoints["channel2"] = 2
hd1.dataPoints["channel3"] = 3
Run Code Online (Sandbox Code Playgroud)
然后我再次实例化该类并再次使用值填充它:
hd2 = HistoricalData()
hd2.dataPoints["channel1"] = 10
Run Code Online (Sandbox Code Playgroud)
当我从hd1.dataPoints和hd2.dataPoints打印值时,我得到以下内容:
{'channel1': 1, 'channel2': 2, 'channel3': 3}
{'channel1': 10, 'channel2': 2, 'channel3': 3}
Run Code Online (Sandbox Code Playgroud)
字典具有第二个对象中第一个的副本,因为channel1中的值在第二个而不是第一个中更改.
我想当你实例化一个类时,所有的值都将默认为类中定义的值.我错过了什么吗?