Python函数默认参数的一个小陷阱
来源:互联网 发布:淘宝里的评价怎么删除 编辑:程序博客网 时间:2024/05/21 07:54
if
以上小程序会有如下输出:
args
args
args
按照通常的理解,第二次调用的args应该为默认值[],但为什么会变成上一次的结果呢?
查阅Python manual有如下的说法:
Default parameter values are evaluated when the function definition is executed.
至此,原因已经很清楚了:函数中的参数默认值是一个可变的list, 函数体内修改了原来的默认值,而python会将修改后的值一直保留,并作为下次函数调用时的参数默认值
转自:http://www.cnblogs.com/ukessi/archive/2010/01/25/python-function-default-parameter-value-problem.html,留作学习
- Python函数默认参数的一个小陷阱
- Python函数默认参数的一个小陷阱
- [被坑纪念][转帖]Python函数默认参数的一个小陷阱
- Python 列表作为默认参数的陷阱
- Python默认参数的设计陷阱
- python中函数默认参数的陷阱(《改善python程序的91个建议》)
- 默认参数提升在可变参数函数的陷阱
- python 可变参数的一个陷阱
- Python函数参数默认值的陷阱
- Python函数的默认参数
- python 函数默认参数的问题
- 谈谈Python函数的默认参数
- Python函数参数默认值的陷阱和原理深究
- Python函数参数默认值的陷阱和原理深究
- Python函数参数默认值的陷阱和原理深究
- 【转载】Python函数参数默认值的陷阱和原理深究
- Java的一个小陷阱
- ListView的一个小陷阱!
- 地图服务标注显示乱码问题
- OpenGL之 小小太阳系 堆栈操作
- 【Spring专题-③】AOP浅析(二)
- 替换GINA.DLL实现自己的登陆界面
- 不用+、-、×、÷做加法[算法]
- Python函数默认参数的一个小陷阱
- YUY2(YUV) 与 RGB 格式图片的相互转换 以及 基于YUY2(YUV)的blending
- Argus(ZOJ Problem Set - 2212)(优先队列)
- uml使用详细
- 获得TCP,IP,UDP协议信息
- C语言中函数指针的详细介绍
- 鼠眼看Linux调度器
- vs2008起始页不显示
- 代码大全2(读书笔记4)