Obejct Python(与lst)

时间:2018-02-12 16:01:53

标签: python

如果我将对象附加到列表然后更改对象,列表中的对象是否也会更改? 例如:

我有一个 logout_users: function() { var self = this; $(document).on('click', '.test', function(e) { e.preventDefault(); self.doAlert(); }); 类,其构造函数为Car license

int

car1 = Car(13535) car 2 = Car(1637) new_lst = [] new_lst.append(car1) new_lst.append(car2) car1.license = 11111 打印旧许可证还是新许可证?

2 个答案:

答案 0 :(得分:1)

>>> class car:
...     def __init__(self):
...             self.lic = None
... 
>>> car1 = car()
>>> car1.lic = 123
>>> car1.lic
123
>>> x = [car1]
>>> car1.lic = 12345
>>> x[0].lic
12345
>>> id(car1)
4332657192
>>> id(x[0])
4332657192

是的,列表中对象的原因是作为参考附加,因此id将是相同的。因此,当您更新原始变量时,列表中元素的值也将更新。

答案 1 :(得分:0)

将对象添加到列表会创建对列表中对象的引用,而不是列表中对象的副本。因此,说列表中的对象“也会发生变化”并不完全正确,因为只有一个对象。

new_lst[0].license是11111。