(Python)每日代码||2024.1.17||函数中给列表形参默认值时,该默认列表在函数中的改变会保留下来
def f(x,li=[1]):
print(id(li))
li.append(x)
print(li)
f('a')#第一次调用函数
print()
f('b')#第二次调用函数
print()
f('a',[])#第三次调用函数
print()
f('b',[2,2])#第四次调用函数
print()
f('a')#第五次调用函数
'''输出
1435220040000
[1, 'a']
1435220040000
[1, 'a', 'b']
1435222867392
['a']
1435222867392
[2, 2, 'b']
1435220040000
[1, 'a', 'b', 'a']
'''
在调用函数时,若未传递列表参数,则会使用列表形参的默认值。
该默认值的地址是不变的,并且调用函数中对该地址的列表所做的改动会保留下来。
在调用函数结束时或下一次调用函数开始时,均不会将该地址所在的列表形参重置为定义函数时设定的默认值
- 第一次调用函数后,列表形参li默认值从
[1]变为了[1,'a'] - 第二次调用函数仍未传递列表参数,列表形参li默认值从
[1,'a']在函中被变为了[1,'a','b'] - 第三次调用函数传递了一个空列表,函数没有使用默认的列表形参,因此列表形参li默认值没有变化,仍为
[1,'a','b'] - 第四次电影函数传递了一个列表
[2,2]与上面情况一样 - 第五次调用函数未传递列表,函数使用了默认的列表形参li,为
[1,'a','b'],函数操作后默认的形参列表变为了[1,'a','b','a']
(Python)每日代码||2024.1.17||函数中给列表形参默认值时,该默认列表在函数中的改变会保留下来的更多相关文章
- day_12函数默认值,数据类型的补充,函数对象名称空间与作用域,函数的嵌套定义
复习, 昨天讲了字符串的比较,按照从左往右比较每一个字符,通过字符对应的ASCII码进行比较 函数的参数,‘ 实参与形参 形参:在函数定义时()中出现的参数 实参,在函数调用时()中出现的参数 实参的 ...
- SQL将一个表中的某一列值全部插入到另一个表中
1. SQL将一个表中的某一列值全部插入到另一个表中 插入的话: insert into a(col) select col from b; 更新的话: update a set col=selec ...
- es6(三):es6中函数的扩展(参数默认值、rest参数、箭头函数)
1.函数可以设置参数默认值 function test1(x,y=1){ console.log(x,y) } test1(10)//10 1 2.rest参数:形式为...变量名 function ...
- OpenCV中图像以Mat类型保存时各通道数据在内存中的组织形式及python代码访问各通道数据的简要方式
以最简单的4 x 5三通道图像为例,其在内存中Mat类型的数据组织形式如下: 每一行的每一列像素的三个通道数据组成一个一维数组,一行像素组成一个二维数组,整幅图像组成一个三维数组,即: Mat.dat ...
- mysql where 条件中的字段有NULL值时的sql语句写法
比如你有一个sql语句联表出来之后是这样的 id name phone status 1 张三 ...
- list中包含多个相同值时,List中的indexOf(Object o)方法的返回值
查一下Java API,List下的indexOf(Object o)方法的返回值为list列表中首个元素出现位置的索引,找不到时返回-1
- img标签中的图片加载异常时显示默认的图片
备忘:
- SQLite取值时的下标与创建表中字段的关系
- Ruby方法参数默认值的一个小技巧在Rails中的应用
我们需要生成一个gravatar格式的html.image标示,于是写了如下方法: def gravatar_for(user) gravatar_id = Digest::MD5::hexdiges ...
- model中设置默认值时 ,使用 lambda 与否的差别以及datetime的默认值方法
'date': '2013-01-01' #固定值 'date': time.strftime('%Y-%m-%d') #启动时候的值 'date': lambda *a: time.strfti ...
随机推荐
- vue中form组件中上传el-upload(单、多附件上传,以及上传回显以及编辑不出现等问题)
https://blog.csdn.net/weixin_46565787/article/details/121934075?spm=1001.2101.3001.6650.2&utm_me ...
- docker目录迁移流程
概述 在安装测试最新版本的HOMER7的过程中,docker作为基础工具碰到一些问题,针对问题进行总结. docker的默认工作目录在/var目录,而在我们的环境中,/var目录空间预留不足,随着do ...
- mysql 复制表结构创建表及复制表结构与数据创建表
本文为博主原创,未经允许不得转载: 在开发过程或项目维护发布过程中,经常需要复制建表及复制表数据建表等,整理了以下四种常用的 mysql 命令. 1. create like 复制表结构(包含索引, ...
- Vue事件方法中this.属性名
vue事件方法中访问data对象中的成员 : this.属性名 注意: 如果事件处理代码没有写到methods中,而是写在行内则不需要this.
- B2033 A*B 问题
A*B 问题 题目描述 输入两个正整数 \(A\) 和 \(B\),求 \(A \times B\) 的值.注意乘积的范围和数据类型的选择. 输入格式 一行,包含两个正整数 \(A\) 和 \(B\) ...
- [IDEA] - tomcat VM配置
-Dfile.encoding=UTF-8
- CSS - 正确解决 float 高度坍塌的问题
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta cha ...
- ONVIF网络摄像头(IPC)客户端开发—最简RTSP客户端实现
前言: 网上对于RTSP协议客户端的表述和实现非常不清晰,在实际使用中,FFMPEG和live555这些软件已经实现了RTSP客户端和服务端的所有功能,但是它们并没有将RTSP协议独立出来,通过看li ...
- [转帖]细说ASCII、GB2312/GBK/GB18030、Unicode、UTF-8/UTF-16/UTF-32编码
参考: <编码标准-GB2312 GBK GB18030> <字符编码笔记:ASCII,Unicode 和 UTF-8> <字体编辑用中日韩汉字Unicode编码表> ...
- [转帖]容器化 TCP Socket 缓存、接收窗口参数
https://blog.mygraphql.com/zh/notes/low-tec/network/tcp-mem/#rmem_default 最近需要支持一个单 POD 的 TCP 连接数上 1 ...