有人可以解释一下为什么这个名单会像这样重新定义吗?

时间:2015-08-28 15:37:53

标签: python

>>> def hello(l):
k=l
k.append('s')
return l

>>> hello(['hello'])
['hello', 's']

我在python3.4.1中发现了一个奇怪的事件我确定它有原因但我不理解它。

1 个答案:

答案 0 :(得分:0)

append就地修改引用的对象,而不是返回一个新对象。即使你输入k = l,append方法也会修改底层引用列表,所以k和l都有值['hello','s']