Python匿名函数和高阶函数
Lambda(Lambda expressions)表达式是用lambda关键字创建的匿名函数,Lambda函数可以用于任何需要函数对象的地方,在语法上,它们被局限于只能有一个单独的表达式,但是他可以跟其他内置函数map,reduce,filter等联合使用,更加便利和快捷的一些方法。 lambda 和if else的三元运算一样,是为了简化函数定义,但是:匿名函数
- 只能做简单的操作
- 自动return
# 这段代码 def f(x, y): return x + y print(f(3, 4)) # 换成匿名函数 f = lambda x, y: x + y print(f(3, 4))效果是相同的结果都是7,lambda创建的函数和def创建的函数对应关系如图所示: [attach]1342[/attach] 这看起来并没有什么卵用,但是它和其他内置函数搭配起来,具体联合使用请参考:http://openskill.cn/article/272
变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。 满足下列条件之一就可成函数为高阶函数:高阶函数
- 某一函数当做实参传入另一个函数中
- 函数的返回值包含n个函数,n>0
def bar(): print 'in the bar' def foo(func): res=func() return res foo(bar)首先定义好函数bar和foo,然后执行foo的时候把bar函数当实参传递进去。