当前位置: 首页 > news >正文

Python参数的默认值进阶250216

  • 如果函数参数的默认值是可变类型,就需要注意指向问题
def func(a1, a2 = [1, 2]):
    a2.append(666)
    print(a1, a2)
    return

func(100)# 100 [1, 2, 666]
func(200)# 200 [1, 2, 666, 666]
func(99, [77, 88])
func(300)# 300 [1, 2, 666, 666, 666]
  • 编译到到函数时,会提前为默认值安排了内存
  • 第6行函数调用中,a2会指向已经分配的内存中的列表地址
    • 函数调用的第2行,会为这个地址中的列表添加元素666
    • 这样在第7行再调用函数时,a2的值已经变成[1, 2, 666]
    • 不同次调用函数时,默认值不会生成新的,而是会在编译过程中已经生成好的
    • 第8行,就不再使用默认值

相关文章:

  • Linux系统Centos安装部署nginx代理
  • win10 系统 自定义Ollama安装路径
  • 从安装软件到flask框架搭建可视化大屏(二)——创建一个flask页面,搭建可视化大屏,零基础也可以学会
  • Pointnet++改进75:添加PSConv模块 | 新型的风车状卷积
  • 频率自适应扩张卷积(FADC)详解及代码复现
  • 保持角色一致性的绘本生成AI开源项目之Story-Adapter本地部署Windows篇
  • 第三章:组件开发实战 - 第一节 - Tailwind CSS 常用UI组件构建
  • 【第15章:量子深度学习与未来趋势—15.3 量子深度学习在图像处理、自然语言处理等领域的应用潜力分析】
  • 数据结构与算法学习笔记----数位统计DP
  • 阅读论文“用于车联网安全车载通信的机器学习技术“的学习笔记
  • 进程令牌:Windows 安全架构中的关键元素
  • 在SpringBoot中使用UniHttp简化天地图路径规划调用实践
  • 【基于SprintBoot+Mybatis+Mysql】电脑商城项目之设置默认收货地址及删除收货地址
  • 【Qt Qml】QML与C++交互
  • 跟着AI学习vue3第一章
  • 文档格式转换引擎开发:支持PDF与OFD的技术实现
  • LeetCode 热门100题-最大子数组和-错题
  • 初始JavaEE篇 —— Spring Web MVC入门(下)
  • 深入解析与解决 Oracle 报错:ORA-29275 部分多字节字符20250213
  • 阿里云大文件ossutil工具进行上传下载,该工具支持断点续传
  • 以色列媒体:哈马斯愿意释放部分人员换取两个月停火
  • 习近平在第三十五个全国助残日到来之际作出重要指示
  • 2000多年前的“新衣”长这样!马王堆文物研究新成果上新
  • 现场丨在胡适施蛰存等手札与文献间,再读百年光华
  • 著名植物学家、园艺学家,国际植物园协会原主席贺善安逝世
  • 北京13日冰雹过后,已受理各险种报案近3万件