- 在运行时创建
- 能赋值给变量或数据结构中的元素
- 能作为参数传递给函数
- 能作为函数的返回结果
|
|
从这个测试中我们可以看出,Python的function是一个对象,其中doc是函数对象众多属性中的一个,我们可以把函数作为参数传递给变量,然后通过变量名调用,也可以作为参数传递给其他函数,例如传递给map函数,map返回一个可迭代对象,如下所示:
|
|
有了一等函数之后,我们就可以使用函数式编程风格
高阶函数
函数式编程的一大特点之一就是使用高阶函数,高阶函数的定义如下:接受函数作为参数,或者把函数作为返回值的函数都是高阶函数(high-order function)
sorted就是一个高阶函数,它可以使用可选参数用于提供一个函数来进行排序,如下所示,把len函数传递给key参数,就可以进行排序操作:
|
|
在函数式编程中,最为人熟知的就是map filter reduce函数了,不过在现有的情况下,可以用列表推导和生成器表达式来替代,其中在Python3中,map和filter返回生成器,因此最接近他们的替代品是生成器表达式,在Python2中返回列表,因此最接近的替代品是列表推导