python函数如何传递参数?
发布时间:2025-12-24 16:52:56

在Python中,函数参数由实际参数传输到形状参数的过程由参数传输机制控制。根据实际参数的类型,函数参数的传输方式分为值传输和引用传输(也称为地址传输)。
Python函数参数的值传递机制
所谓的值传递实际上是将实际参数值的副本(复制品)传输到函数中,而参数本身不会受到任何影响。
以下程序演示了函数参数传递值的效果:
defswap(a,b):
#以下代码实现a、b变量值交换
a,b=b,a
print("在swap函数中,a的值是",\
a,";b的值是",b)
a=6
b=9
swap(a,b)
print("交换后,变量a的值是",\
a,";变量B的值是",b)操作上述程序,将看到以下操作结果:
在swap函数中,a的值是 9 ;b的值是 6交换后,变量a的值是 6 ;变量b的值是 9
从上述操作结果来看,在 swap() 函数里,a 和 b 的值分别是 9、6.交换结束后,变量 a 和 b 的值依然是 6、9.从这个操作结果可以看出,程序中实际定义的变量 a 和 b,并不是 swap() 函数里的 a 和 b 。
引用传输Python函数参数
如果实际参数的数据类型是可变对象(列表、字典),则函数参数的传输方式将采用引用传输方式。需要注意的是,引用传输模式的底层实现仍然是值传输模式。
以下程序展示了引用传输参数的效果:
defswap(dw):
#下面的代码实现dwa、b两个元素的值交换
dw['a'],dw['b']=dw['b'],dw['a']
print("在swap函数中,a元素的值是",\
dw['a'],";b元素的值是",dw['b'])
dw={'a':6,'b':9}
swap(dw)
print("交换后,a元素的值是",\
dw['a'],";b元素的值是",dw['b'])操作上述程序,将看到以下操作结果:
在swap函数中,a元素的值是 9 ;b元素的值是 6交换后,a元素的值是 9 ;b元素的值是 6
从上述操作结果来看,在 swap() 函数里,dw 字典的 a、b 两个元素的值交换成功。不仅如此,当 swap() 函数执行后,主程序 dw 字典的 a、b 两个元素的值也被交换了。
这很容易产生一种错觉,即调用 swap() 在函数中,传入 swap() 函数的就是 dw 字典本身,而不是复制品。
更多Python知识请关注Python自学网
下一篇 返回列表
