python函数参数是引用还是传值
2018-09-02 本文已影响7人
markDownMan

1.如果是参数引用的话,c是应该一直加1
但是事实是一直都是1,所以不是参数引用

2.如果是参数传值的话,如果你传一个列表,然后在函数实现append操作,
结果运行之后,原本的列表也会变化。
其实python的函数参数既不是引用,也不是传值
详情请看:Python 函数中,参数是传值,还是传引用? - 陨落&新生 - 博客园

那么我刚刚那个例子为啥c参数传进函数之后,进行递增,然而函数执行完之后,原来的函数参数为什么不变呢?
因为进行+1操作之后,c = c + 1
就会生成另一个对象,然后c就会指向另一个对象。