01 看代码写结果 函数参数使用可变数据 有什么陷阱

news/2024/11/20 4:41:08/文章来源:https://www.cnblogs.com/jhchena/p/18432657
面试题:
  • def func(a,b=[]) 有什么陷阱?

    因为b是可变类型,如果不传递参数时,默认使用的同一个内存地址

  • 看代码写结果

    def func(a,b=[]):b.append(a)return bl1 = func(1)
    l2 = func(2,[11,22])  #先打印:[11,22] ,在打印2
    l3 = func(3)# [1,3]   [11,22,2]   [1,3]
    print(l1,l2,l3)
    
  • 看代码写结果

    def func(a,b=[]):b.append(a)print(b)func(1)
    func(2,[11,22,33])
    func(3)# [1]  [11,22,33,2]   [1,3]
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/803833.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

01 初识装饰器

===================装饰器= def func(arg):def inner():print(before)v = arg()print(after)return v return inner def index():print(123)return 666# 示例一 """ v1 = index() # 执行index函数,打印123并返回666赋值给v1. """ # 示例二 &qu…

00 函数可以做返回值–进行返回

函数可以做返回值–进行返回 视频p125 def func():print(123)def bar():return funcv = bar() # 将func函数名进行, 此时v = func v()name = oldboy def func():print(name)def bar():return funcv = bar()v()def bar():def inner():print(123)return inner v = bar() v()name…

01 练习

重点:记函数是由哪个创建的,函数就从哪里开始找# 第一题 name = alex def base():print(name) # name = alexdef func():name = ericbase() # base中没有name,会从func函数中进行查找func() # {name=eric, }# 第二题 name = alexdef func():name = ericdef base():print(nam…

02 面题

面题 P127 128 info = []def func():print(item)for item in range(10):info.append(func)info[0]() #for 循环后 item的值为: 9info = []def func(i):def inner():print(i)return innerfor item in range(10):info.append(func(item))info[0]() #0 里面的值都是不一样 info…

24 函数内部的数据是否会混乱

函数内部的数据是否会混乱。函数内部执行相互之间不会混乱每个函数调用时,会进行单独进行开僻内存空间,函数执行完与内部元素无其他使用,开僻内存会进行销毁执行完毕 + 内部元素不被其他人使用 => 销毁

《英雄无敌》2-小回城术修改成大回城术

回城术,是西方魔术世界的基本魔术元素之一。玩过现代一些具有地图场景的游戏,都有回城术,例如暗黑破坏神里面的回城卷轴。英雄无敌从1代就有回城术,它只能让英雄在野外陆地上,回到离他最近的城堡。到了英雄无敌2代,回城术从1代的只能回到最近城堡,升级到2种回城术,即大…

数据结构 - 数组

学习数组,需掌握其ADT定义。数组为同类型元素序列,具固定长度、连续内存、类型相同、索引从0起等特性。通过ADT定义数组,实现类包含内存管理和长度字段,支持初始化、获取/设置元素、插入/删除及释放内存等操作。掌握数据结构需理解其定义并实现。今天我们将开始第一个数据类…

【第3期】INFINI Easysearch 免费认证培训开放报名

探索 Easysearch 的无限可能,与 INFINI Labs 共赴搜索技术前沿! 随着数字化转型的加速,搜索技术已成为企业数据洞察的核心。INFINI Labs 作为搜索创新技术的引领者,诚邀所有对 Easysearch 搜索引擎感兴趣的开发者、技术爱好者及合作伙伴,参加我们即将于 2024 年 10 月 19 …

vscode使用g++编译代码中含有中文字符的程序运行后乱码

环境: 系统编码:不知道 mingw版本:https://nuwen.net/mingw.html 的 mingw-19.0.exe (60.5 MB) vscode版本:VSCodeUserSetup-x64-1.93.1问题出现: task.json里未配置任何编码转换: ——乱码 task.json 配置 "-fexec-charset=GBK” ——报错:cc1plus.exe: error: n…

PO、DTO、VO、BO 及其使用场景

基于 说清楚 PO、DTO、VO、BO 与使用场景简介PO(Persistent Object)/DO(Data Object):此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。 DTO(Data Transfer Object):数据传输对象。Service 或 Manager 向外传输的对象。 BO(Business Object):业务对象…

Java中到底有哪些锁

乐观锁和悲观锁 不是具体的锁,是指看待并发同步的角度 悲观锁:对于同一个数据的并发操作,悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。Java中,synchronized关键字和Lock的实现类都是悲观锁。 乐观…