函数式编程

2017-11-07  本文已影响0人  Ji_uu

变量可以指向函数

#函数的调用
>>> abs(-5)
5

#直接写abs则返回函数对象
>>> abs
<built-in function abs>

#定义一个变量f,把它指向abs,对f调用相当于对abs调用
#说明变量可以指向函数
>>> f = abs
>>> f(-8)
8

函数名其实就是指向函数的变量

#这里把abs指向另一个函数,则abs不再是求绝对值的函数了
>>> abs = len
>>> abs(-5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'int' has no len()
#可以得到字符串的长度
>>> abs('hehe')
4
#以上说明了函数名和普通的变量没有区别,它指向的只是一个函数对象

高阶函数:能接收函数做参数的函数

来看一个高阶函数的例子

>>> def add(x, y, f):     #定义一个add函数
...     return f(x) + f(y)
...
>>> add(-7, 9, abs)      #对函数进行调用
16

任务利用add(x,y,f)函数,计算:

#答案
import math

def add(x, y, f):
    return f(x) + f(y)

print add(25, 9, math.sqrt)

map()函数

python中reduce()函数

python中的filter函数

python中自定义排序函数

python中返回函数

python中闭包

python中匿名函数

Python中装饰器

上一篇 下一篇

猜你喜欢

热点阅读