>>> def list(ls):
... a=ls.pop()
... print(a)
... print(ls)
...
>>> ls=[1,2,3,4,5,6]
>>> list(ls)
6
[1, 2, 3, 4, 5]
>>> def list(li):
... a=li.pop()
... print(a)
...
>>> list(ls)
5
>>> print(ls)
[1, 2, 3, 4]
从中我发现:python在用函数传递列表的时候,形参实参之间的名字无论一样与否,均是实参变量本身。
即传递的是地址,而不是数值。
但是单纯的变量的话:
>>> def aa(a):
... a-=1
... print(a)
...
>>> b=6
>>> aa(b)
5
>>> print(b)
6
可以发现,传递的是数值,变量本身的值没有发生改变。