当前位置: 首页 > 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行,就不再使用默认值
http://www.dtcms.com/a/20449.html

相关文章:

  • 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工具进行上传下载,该工具支持断点续传
  • Spring 框架——@Async 注解
  • 【R语言】回归分析与判别分析
  • Jenkins介绍
  • set_intersection set_union set_difference set_symmetric_difference
  • nginx服务器
  • 在Linux系统下修改Docker的默认存储路径
  • CAS单点登录(第7版)1.首页
  • Windows环境安装Kafka(集群版)
  • LVS 负载均衡集群(NAT模式)
  • newgrp docker需要每次刷新问题