zoukankan      html  css  js  c++  java
  • 默认参数的陷阱自我心得

    • 默认参数的陷阱 :

    • 默认参数实际上只有一个值
      • 代码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()
  • 相关阅读:
    学习python第四天——列表方法
    昨天休息了一天,今天补上。列表学习
    第二天学习——字符串的方法
    mongodb
    linux学习篇(一)
    mysql优化
    linux服务
    vue配置服务器
    photoshop学习
    关于视图
  • 原文地址:https://www.cnblogs.com/kujiawei/p/9907459.html
Copyright © 2011-2022 走看看