博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
默认参数为可变类型的坑
阅读量:5134 次
发布时间:2019-06-13

本文共 416 字,大约阅读时间需要 1 分钟。

默认参数为可变类型的坑

程序中偶然遇到:

def f(x, l = [] ):    for i in range(x):        l.append(i*i)    print(l)f(2)       # l此时为[0,1]f(3)       # l此时为   [0, 1, 0, 1, 4]f(3,l=[3,2])   # l此时传入参数了,以传入的为准f(2)       # l此时为   [0, 1, 0, 1, 4, 0, 1]#执行结果:[0, 1][0, 1, 0, 1, 4][3, 2, 0, 1, 4][0, 1, 0, 1, 4, 0, 1]

小结

python程序函数的默认参数只在定义阶段被赋值一次,调用时可以不用传值。建议把默认参数定义成不可变数据类型,定义成可变类型就会有上面程序的情况。

转载于:https://www.cnblogs.com/liao-lin/p/7106019.html

你可能感兴趣的文章
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Python IO模型
查看>>
DataGridView的行的字体颜色变化
查看>>
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Android-多线程AsyncTask
查看>>
LeetCode【709. 转换成小写字母】
查看>>
CF992E Nastya and King-Shamans(线段树二分+思维)
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
linux install ftp server
查看>>
alter database databasename set single_user with rollback IMMEDIATE 不成功问题
查看>>
【题解】青蛙的约会
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
[51nod] 1199 Money out of Thin Air #线段树+DFS序
查看>>
Red and Black(poj-1979)
查看>>
安装 Express
查看>>
存储(硬件方面的一些基本术语)
查看>>