python中函数值的传递方式

马谦马谦马谦 2018年3月3日14:53:27
评论
366字阅读1分13秒

0x01 传递非引用对象

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

0x02 传递引用对象

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

注意事项

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

输出结果为:

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

Python最后更新:2018-5-4
马谦马谦马谦
  • 本文由 发表于 2018年3月3日14:53:27
  • 转载请务必保留本文链接:https://www.dyxmq.cn/program/code/python/python-function-pass-value.html
python生成随机数的方法 Python

python生成随机数的方法

一、概述 python可以通过random包来产生随机数或者执行一些随机操作。 1. random.seed() 给定一个数据作为随机数种子,和大多数语言一样,python也可以使用时间来作为随机数种...
python redis-py模块用法 Python

python redis-py模块用法

一、安装 redis中操作redis的模块为redis-py,使用pip install redis或者easy_install redis安装即可,也可以进去https://pypi.python....
python使用_winreg模块操作注册表 Python

python使用_winreg模块操作注册表

一、基本操作 python中的_winreg模块提供了对于windows平台下注册表的一些基本操作,包括对键值的枚举以及增加删除键等,以`HKEY_CURRENT_USERConsole`为例: Op...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: