# 函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!
# 变量可以指向函数
abs(-10)
# 10
abs
# <built-in function abs>
# ------abs(-10)是函数调用,而abs是函数本身
x = abs(-10
)
print(x)
# 10
# 函数名也是变量
f =
abs
print(f)
# <built-in function abs>
print(f(-10))
# 10
# 说明变量f现在已经指向了abs函数本身。直接调用abs()函数和调用变量f()完全相同
# abs = 10
# abs(-10) # TypeError: 'int' object is not callable
# abs指向10后,就无法通过abs(-10)调用该函数了!因为abs这个变量已经不指向求绝对值函数
# 传入函数
# 既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
def add(x, y, f):
return f(x) +
f(y)
print(add(-5, 6, abs))
# 11
转载于:https://www.cnblogs.com/shaozhiqi/p/11543586.html
相关资源:functional python programming second edition(英文版)