py中函数是传值还是传引用
Posted bluebluesea
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了py中函数是传值还是传引用相关的知识,希望对你有一定的参考价值。
1.py中函数是传值还是传引用?
https://www.cnblogs.com/loleina/p/5276918.html,中间的实验我没有看,但是结论如下:
结论:python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值‘来传递对象。
2.实验
def fun(a): a.append(3) b=[1] fun(b) print(b) # [1, 3]
可以发现对于列表这种可变对象,是传递引用的
def fun(a): a=3 b=1 fun(b) print(b) # 1
对于不可变对象,比如这样一个数字变量,就不会更改,是值传递
//学到了。
以上是关于py中函数是传值还是传引用的主要内容,如果未能解决你的问题,请参考以下文章