参数传递
今天在看Python代码的时候发现的python参数传递的一个问题
在Python中参数传递分为两种情况,一种是传递可变的对象,比如列表,另一种是不可变的对象比如字符串时,这两种情况是不一样的,通过查阅相关资料有了如下了解
当传入的是可变对象列表的时候,就类似于C语言中的指针传递
def add_list(a):
a.append(10)
a = [1]
add_list(a)
print(a)
[1, 10]
当传入的是不可变的对象的时候,类似于C语言中的值传递
def add(a):
a = a + 2
a = 5
add(a)
print(a)
5
更详细的解释可以参考,参考文献中的链接。
参考文献:
[1] https://www.zhihu.com/question/20591688
[2] http://winterttr.me/2015/10/24/python-passing-arguments-as-value-or-reference/