匿名函数
一行函数
-
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()-
作用:
保护数据的安全性
装饰器