默认参数的陷阱自我心得

  • 默认参数的陷阱 :

  • 默认参数实际上只有一个值
    • 代码1
      • def func(l = 1):
        • l += 1
        • print(l)
      • func()
      • func()
      • func()
    • 代码2
      • lst = []
      • def func(a,l = lst):
      • l.append(a)
      • print(l)func(1) # [1]
      • func(2,[]) # [2]
      • func(3) # [1,3]变量是变量,值是值
  • 变量的名字和有多少个值没有对应关系
  • 我们在看修改的时候:要看修改的是哪一个对应的值而不是变量
  • def func(l = []): # 在函数定义的时候 创建了个[]
  • pass                # 对于默认参数来说,[]只定义一次
  • def func2(a = 0):
  • a += 1 a = a + 1 = 0 + 1 = 1 局部变量 会随着这个函数的调用而消失
  • print(a)func2()func2()
  • 闭包的概念和代码
    • 闭包: 内部函数使用了外部函数的变量,内部函数就是一个闭包
    • 代码
      • def func(*args):
      • sum_num = 0
      • for num in args:
      • sum_num += num
      • def inner():
      • return sum_num
      • return inner
      • inner = func(1,2,3,4)
      • inner()

转载于:https://www.cnblogs.com/kujiawei/p/9907459.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值