det*_*ett 2 python function list
>>> def test():
... a.remove(1)
>>> a = [1,2]
>>> test()
>>> print a
[2]
Run Code Online (Sandbox Code Playgroud)
为什么a平等[2]而不是[1,2]?
列表是可变的.如果将它传递给函数,并且函数更改它,它将保持更改状态.
a = (1,2)b = list(a); b.remove(1)-现在a和b具有不同的内容,a并没有改变.另外,尽量不要使用可变的全局数据.传递a给函数,或者a作为对象的属性,并将函数作为其方法.