匿名函数
-
一行函数
-
lambda == def -- 关键字
-
lambda x:x
-
x 是普通函数的形参(位置,关键字……)可以不接收参数,可以不写
-
:x 是普通函数的函数值(只能返回一个数据类型),必须写
-
-
-
匿名函数的名字叫做lambda
-
lst=[lambda :i for i in range(5)]
print(lst[0]())
#结果:4 -
函数体中存放的是代码,生成器体中存放的也是代码
-
yield导致函数和生成器的执行结果不统一
-
内置函数二
-
重点讲解:
enumerate() open() range() len() str() list() tuple() dict() set() print() sum() abs() dir() zip() format() reversed() filter() map() sorted() max() min() reduce()
普通
-
str() list() tuple() dict() set() print() sum() abs() dir() zip() format() reversed()
-
分讲:
-
print() --
-
abs() -- 取绝对值
-
dir() -- 查看当前对象所有方法
-
zip() -- 拉链
-
format() -- 格式、转换
-
reversed() -- 反转
-
高阶
-
filter() map() sorted() max() min() reduce()
-
分讲:
-
filter() -- 过滤(1. 指定过滤的规则(函数的内存地址--代码) 2. 要过滤的数据)
-
map() -- 映射函数(将每个元素都执行了指定的方法)
-
sorted() -- 排序
-
max() -- 最大值
-
min() -- 最小值
-
reduce() --
-
from functools import reduce
-- 累计算
-
-
闭包
-
在嵌套函数内使用(非本层变量)和非全局变量就是闭包
-
def func():
a=1
def foo():
print(a)
print(foo.__closure__) # 返回的有内容就是闭包,返回None就不是
func() -
作用:
-
保护数据的安全性
-
装饰器
-