Python 默认参数值
来源:互联网 发布:获取json的key和value 编辑:程序博客网 时间:2024/05/17 21:07
用 pychecker 检测代码时, 提示
Modifying parameter (***) with a default value may have unexpected consequences记起"Google Python 语言规范" 中提到
不要在函数或方法定义中使用可变对象作为默认值.Yes: def foo(a, b=None): if b is None: b = []No: def foo(a, b=[]): ...写了下面的代码进行测试:
#!/usr/bin/env python#coding=utf-8def foo(data=[]): data.append(1) return data print foo()print foo()print foo()输出
[1][1, 1][1, 1, 1]
而
#!/usr/bin/env python#coding=utf-8def foo(data=None): if not data: data = [] data.append(1) return data print foo()print foo()print foo()输出为
[1][1][1]可见默认参数尽量不要使用可变类型.
详细的原因可以参考: http://effbot.org/zone/default-values.htm
0 0
- Python 默认参数值
- Python中的默认参数值
- Python中的默认参数值
- Python函数默认参数值
- python 函数默认参数值、关键参数
- 默认参数python
- python 默认参数问题
- 3.9 Python默认参数
- Python默认参数是[]
- Python split()函数默认参数
- Python split()函数默认参数
- Python进阶-函数默认参数
- Python函数的默认参数
- python默认参数的坑
- Python定义函数默认参数
- python中的默认参数self
- Python官方3.2文档教程--方法定义-默认参数值
- python勿使用mutable值作为默认参数
- CF219 Div 1 题解
- 第十八天【java虐我千百遍,我待java如初恋】
- 读书笔记:网站架构之安全篇
- 常用VBS小工具:iconv,unix2dos/dos2unix,base64Encode/Decode
- 学习笔记-C语言实现MD5加密算法
- Python 默认参数值
- textbox选择历史记录后无法触发onchange事件
- 图表引擎AChartEngine 一
- Log4j解惑之一
- 字节流与位流的相互转换实现
- C++ 简单的日志类
- ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
- 小心得:处理两个头文件互调,死循环情况(将文件之间的编译依赖关系降至最低)
- 在线编程学习【优质的资源】