Python匿名函数和高阶函数

匿名函数

Lambda(Lambda expressions)表达式是用lambda关键字创建的匿名函数,Lambda函数可以用于任何需要函数对象的地方,在语法上,它们被局限于只能有一个单独的表达式,但是他可以跟其他内置函数map,reduce,filter等联合使用,更加便利和快捷的一些方法。   lambda 和if  else的三元运算一样,是为了简化函数定义,但是:
  1. 只能做简单的操作
  2. 自动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 

高阶函数

变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。   满足下列条件之一就可成函数为高阶函数:
  1. 某一函数当做实参传入另一个函数中
  2. 函数的返回值包含n个函数,n>0
  先来看一个简单的例子:
def bar():
    print 'in the bar'
    

def foo(func):
    res=func()
    return res

foo(bar)
首先定义好函数bar和foo,然后执行foo的时候把bar函数当实参传递进去。

0 个评论

要回复文章请先登录注册