python函数传参是值传递还是引用传递,python值传递和引用传递的区别
值传递和引用传递
Python的值传递不改变传入参数的值,而引用传递传入一个地址,有点像C的指针,执行完成后会改变传入地址所指向的值。
值类型如下:
上面的代码只是将A的值作为参数传递,程序执行后A的值不会改变。
a=1
defchange_integer(a):
a=a 1
退货
printchange _整数(a)
普林塔
结果:
2
一个
[0.1秒内完成]
传递的引用类型如下:
b=[1,2,3]
defchange_list(b):
b[0]=b[0] 1
returnb
打印更改列表(b)
printb
结果:
[2, 2, 3]
[2, 2, 3]
[0.1秒内完成]
这里传入B的地址后,程序执行后B的值也会发生变化。
如何求解变量:从引用传递到值传递?
该方案如下:
导入副本
b=[1,2,3]
defchange_list(b):
b[0]=b[0] 1
returnb
print change _ list(copy . deepcopy(b))
printb
结果:
[2, 2, 3]
[1, 2, 3]
[0.1秒内完成]
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。