(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 ...
随机推荐
- 6、SpringBoot-mybatis分页实现pagehelper
系列导航 springBoot项目打jar包 1.springboot工程新建(单模块) 2.springboot创建多模块工程 3.springboot连接数据库 4.SpringBoot连接数据库 ...
- 每天学五分钟 Liunx 1000 | 软件篇:源码安装
软件安装流程 前面软件篇提到了通过 RPM 和 YUM 在线安装的机制安装软件,除了这两种方式之外还有一种通过源码来安装软件的方式.
- 搬运 |(有刀🔪慎入)kwdnx、谷雨、更漏与我
本打算把文案投到官微,但官微说文案太长了,只能放删减版: 那就把文案放博客上吧 写于 癸卯年 戊午月 己亥日. 四年前的冬天我们初见,大家都是青涩的未成年人:在少年班团建的喧闹中,谷雨谈论高数竞赛,k ...
- PHPCMS V9安装出现DNS解析失败的解决方法-不支持采集和保存远程图片
目前因为phpcms官网停止解析后,很多人安装phpcms v9出现如下错误: 这是因为检测dns解析的域名是phpcms官网的域名,官网域名停止解析后肯定检测失败.解决方法如下: 打开/ ...
- Java基础篇(05):函数式编程概念和应用
目录 一.函数式概念 二.函数与方法 三.JDK函数基础 1.Lambda表达式 2.函数式接口 四.Optional类 1.Null判断 2.Optional应用 五.Stream流 一.函数式概念 ...
- Linux-文件指令-cat-less-head-touch
- redis-持久化-RDB-AOF.png
- MySQL为什么不推荐使用in
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址 系列文章地址 当使用IN语句时,MySQL可能会遇到以下问题: ...
- JVM内存用量的再学习
JVM内存用量的再学习 背景 最近解决一个SQLServer的问题耗时很久. 最终找到了一个看似合理的问题解释. 但是感觉不能只是总结于数据库方面 因为为了解决这个问题增加了很多监控措施. 所以想就这 ...
- [转帖]linux系统主机双网卡实现路由转发问题与解决
1. 环境 拓扑: 网卡配置: host1: 192.168.1.1/24 host2: 左eth0: 192.168.1.2/24 右eth1: 192.168.2.2/24 host3: 192. ...