-
Python函数默认参数的陷阱
- 默认参数实际上只有一个值
- 代码1
- def func(l = 1):
- 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()
-
相关阅读:
成功故事--甩手的故事 《转》
从李小龙的一句话看程序员是否应该多学几种编程语言
Windows编程中各种操作文件的方法《转载》
MFC 属性表单的创建
MFC 七种数据交换方式--对话框
如何下载小众电影
阿里2015前端笔试题
jquery 20行代码实现简单轮播效果
CSS定位与浮动
盒子模型
-
原文地址:https://www.cnblogs.com/jayxuan/p/10742352.html
Copyright © 2020-2023
润新知