高阶函数
能接受函数做参数的函数
变量可以指向函数
函数的参数可以接受变量
一个函数可以接受另外一个函数作为参数
能接收函数作参数的函数就是高阶函数
def add(x,y,f):
return f(x) + f(y)
print(add(1,-2,abs))
结果:3
map() 函数
是 python 内置的高阶函数
map(f,list),接收一个函数 f,和一个 list 集合,将函数 f 依次作用在 list 集合上,返回一个新的集合。
def f(x):
return x*x
list = [1,2,3]
new_list = map(f,list)
for i in new_list:
print(i)
结果:1 4 9
reduce() 函数
在python3中去掉了
filter() 函数
filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
def is_odd(x):
return x % 2 == 1
filter(is_odd, [1, 4, 6, 7, 9, 12, 17])
结果为:[1, 7, 9, 17]
sorted() 函数
age_list = [56,23,45,12,2]
new_age_list = sorted(age_list)
for i in new_age_list:
print(i)
匿名函数 lambda
关键字lambda 表示匿名函数,:前面的为函数的参数
map(lambda x : x * x,list)
decorator 装饰器
极大的简化代码,避免每个函数编写重复性的代码
本质上是一个高阶函数,接收一个函数作为参数,然后,返回一个新函数
@log
调用函数时候,打印信息