默认参数实际上只有一个值 代码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/jayxuan/p/10742352