Python 函数式编程

高阶函数

能接受函数做参数的函数

变量可以指向函数
函数的参数可以接受变量
一个函数可以接受另外一个函数作为参数
能接收函数作参数的函数就是高阶函数

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 
调用函数时候,打印信息
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容