我创建了一个类似于以下内容的Python类:
class Node(object):
"""docstring for Node"""
def __init__(self, node_id, lng, lat, gid, raw_data=[],quantized_data=[]):
super(Node, self).__init__()
self.node_id = node_id
self.lng = lng
self.lat = lat
self.gid = gid
self.raw_data = raw_data
self.quantized_data = quantized_data
类节点具有两个具有默认值的属性,它们是空列表。 然后创建两个对象:
a = Node(1,1,1,1)
b = Node(2,2,2,2)
我发现,如果我更改一个对象的raw_data
,则另一个对象也会更改。
例如:
a.raw_data.append('x')
然后b.raw_data也具有x
:
>>> b.__dict__
{'node_id': 2, 'lng': 2, 'lat': 2, 'gid': 2, 'raw_data': ['x'], 'quantized_data': []}
我想知道为什么更改一个对象的属性会影响另一个对象。显然,它们是两个单独的对象。这是怎么回事,还是我不明白? 谢谢