Python的函数式编程介绍

描述

函数

回顾一下函数,函数就是把固定的逻辑放在一起,方便我们下次使用,不用写重复的代码,提升代码的复用性以及可读性;一个好的函数,可以只通过函数名就可以看懂这个过程要做什么,所以当我们有很大一段逻辑代码的时候,拆成不同的函数,可以大大的提高代码易读性。

函数式编程

函数式编程,这里多了一个“式”,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算。函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!

Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。

函数作为参数

Python内建的filter()函数用于过滤序列。 filter()函数接收一个函数和一个序列作为参数,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

def is_odd(n):
    return n % 2 == 1

list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
# 结果: [1, 5, 9, 15]

把一个序列中的空字符串删除的写法:

def not_empty(s):
    return s and s.strip()

list(filter(not_empty, ['A', '', 'B', None, 'C', '  ']))
# 结果: ['A', 'B', 'C']

可见filter的用法突出一个“筛选”注意到filter()函数返回的是一个Iterator,也就是一个惰性序列,所以要强迫filter()完成计算结果,需要用list()函数获得所有结果并返回list。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分