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

面试题:
  • def func(a,b=[]) 有什么陷阱?

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

  • 看代码写结果

    def func(a,b=[]):
        b.append(a)
        return b
    
    l1 = 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]
    
posted @   jhchena  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示