python3(十二)functional

# 函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!
# 变量可以指向函数
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

 

posted @ 2019-09-18 16:53  ~清风煮酒~  阅读(616)  评论(0编辑  收藏  举报