位置函数之坑
来源:互联网 发布:怎么登录淘宝网电脑版 编辑:程序博客网 时间:2024/06/05 09:49
当定义一个位置函数,传入一个list,添加一个END在返回:
def add_end(L=[]): L.append('END') return L
正常调用时:(没有出错)
>>>add_end([1,2,3])[1,2,3,'END']>>>add_end(['a','b','c'])['a','b','c','END']
但是当你使用默认参数调用时:(结果不是你想要)
>>>add_end()['END']>>>add_end()['END','END']........
这是因为:
python在定义函数时候,默认的参数L的值已经被计算出来,即[],因为默认参数L也是一个变量,他指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,参数的内容就变了,再是定义时的[].
修改为以下形式:
def add_end(L=None): if L is None: L=[] L.append('END') return L
无论调用多少次都没有问题。
总结:默认参数必须指向不变对象!
0 0
- 位置函数之坑
- jquery的css之--获取位置偏移函数position()
- c文件操作之位置指针设置函数fseek
- 一个随机位置函数
- matlab函数文件位置
- QT位置相关函数
- 获取光标位置函数
- Qt5位置相关函数
- 关联函数的位置
- Qt5位置相关函数
- Qt5位置相关函数
- popupwindow位置函数详解
- 关联函数的位置
- 函数返回值与不同存储位置字符串的“坑”
- ASP之操作间隔字符串对应位置字符加减,自定义SplitStrAM函数
- javascript对象小探之八——函数声明与定义位置要求
- SQL之得到一个字符串中某一个字符第n次出现的位置的函数
- QT中鼠标位置获取问题之event->globalPos()与pos()函数
- git进阶
- Swift 语言的设计错误有哪些?
- ajax使用之验证用户名是否存在
- # Laravel数组分页
- 外键
- 位置函数之坑
- [Java] 往年试卷
- cocos2d理解--SpriteBatchNode和TextureAtlas
- Android Intent意图的常用使用方法
- python中type和instance
- php中数组的数组元素最多出现2次,出现3次了就把第三次的数组元素去掉
- LeetCode-237 Delete Node in a Linked List
- 练习4-3 在有了基本框架后,对计算器程序进行扩充就比较简单了。在该程序中加入取模(%)运算符,并注意考虑负数的情况
- The Hello Wayland Tutorial