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中函数是传值还是传引用的主要内容,如果未能解决你的问题,请参考以下文章

Python 中函数传参是传值还是传引用

python中给函数传参是传值还是传引用

Go语言参数传递是传值还是传引用

关于Java对象作为参数传递是传值还是传引用的问题

python传参是传值还是传引用

Java到底是传值还是传引用