Python3——高阶函数

引子:函数加括号代表调用该函数,而不加括号代表函数本身(函数名)

  例如:

#求绝对值内置函数abs
>>>abs(-10)     #调用函数
10           #返回调用结果

>>>abs     #函数本身
<built-in function abs>     #返回函数本身

高阶函数定义:

变量可以指向函数,函数的参数能接收变量,那么一个函数可以接收另一个函数作为参数,这种函数就叫做高阶函数

n = 1

def func1(x,y):
    return x+y

def func2(x):
    return x

f = func2   #变量指向函数本身,而不是调用函数

f(n)   #函数接收变量,此时f()就等同于func2()

f(func1(1,2))  #一个函数接收另一个函数作为参数

print(f(func1(1,2)))

#结果
3

#func2()就叫高阶函数 

函数名其实也是变量,如果给函数名赋值,那在后面就无法调用该函数,所以绝对不能这么干

>>> abs = 10
>>> abs(-10)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable

总结:

只需要满足以下任意一个条件,就是高阶函数:

1、函数接收的参数是一个函数名

2、函数返回值是一个函数名

1 def f(x):
2      return abs,x   #返回abs函数名,就是返回abs函数本身
3 
4 #f()也是高阶函数

 

posted @ 2018-03-18 13:21  Class.isInstance()  阅读(169)  评论(0编辑  收藏  举报