python中函数值的传递方式

马谦马谦马谦 2018年3月3日14:53:27 发表评论
文章最后编辑于:2018-5-4 22:08:45

0x01 传递非引用对象

对于普通的变量,python函数的值传递过程和大多语言一样都是传递参数的副本,函数体内修改参数值不会对外部传参生效:

0x02 传递引用对象

对于引用对象例如map和list,内部的改变可能会生效:

注意事项

如果在内部修改了参数的地址,例如对参数本身 进行重新赋值,那么赋值之后的操作不会生效:

输出结果为:

可以看到,在函数运行前后变量l 的地址并没有变化,但是在f2 内部对l 重新赋值后l 的地址改变了,所以之后的操作对外部的l 并不生效,外部l 依旧是[1, 2, 3, 4]

本文共执行42次查询,耗时0.274秒!
马谦马谦马谦