码迷,mamicode.com
首页 > 编程语言 > 详细

Python3——高阶函数

时间:2018-03-18 13:53:19      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:一个   span   rac   无法   UNC   ack   std   traceback   line   

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

  例如:

#求绝对值内置函数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、函数return返回另一个函数本身

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

 

Python3——高阶函数

标签:一个   span   rac   无法   UNC   ack   std   traceback   line   

原文地址:https://www.cnblogs.com/everzin/p/8595171.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!