Python 踩坑之传参的问题
前些天刚开始写Python, 没有指针各种不习惯(后来发现很强大。。。)
def fun(A) :
A[0],A[1],A[2] = A[2], A[1], A[0]
def fun2(num) :
num += 1
x = [1,2,3]
fun(x)
y = 10
fun2(y)
fun2(x[0])
print y
print x[0]
print x
Python里面其实"一切都是引用”.
对于常变量,这里就是y,但是因为y是个常量引用,于是这个引用不能改变他指向的常量。
函数传参的时候fun2(y)也不会改变原来y的值,于是这里会打印10而不是11
同理x[0]也是个常量引用
但是x不是常量引用,x是个list,他是变量,于是x对于这个变量的引用能够改变原来的值
fun(A)实现三个元素的逆序
这是程序的运行结果