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

对于不可变对象,比如这样一个数字变量,就不会更改,是值传递 

//学到了。

原文地址:https://www.cnblogs.com/BlueBlueSea/p/13123622.html