python——函数——匿名函数

来源:互联网 发布:阿里云liux开端口命令 编辑:程序博客网 时间:2024/06/09 21:28

普通函数

def add(a, b):    return a + bprint add(18, 8)
output:
26

匿名函数

add = lambda a, b: a + bprint add(18, 8)
output:
26

应用

参数为匿名函数

print reduce(lambda a, b: a + b, [1, 3, 5, 7, 9])
output:
25

返回值为匿名函数

def arith(op):    if op == '+':          return lambda a, b: a + b    elif op == '-':          return lambda a, b: a - b    elif op == '*':        return lambda a, b: a * b    elif op == '/':        return lambda a, b: a / b  add1 = arith('+')  add2 = arith('+')  print add1print add2print add1(18, 8) print add2(28, 18)
output:
<function <lambda> at 0x100984758><function <lambda> at 0x100984e60>2646

总结

  • 关键字lambda表示匿名函数,匿名函数跟普通函数一样也是函数对象,但函数体只能有一个表达式,函数返回值就是该表达式值,不能使用return,默号(:)前是函数参数,因此匿名函数不能实现复杂逻辑
  • 普通函数会定义变量(函数名)并初始化为指向函数对象,匿名函数顾名思义没有函数名,因此匿名函数不会定义变量(函数名)
0 0
原创粉丝点击