python自学我爱编程Python

lambda函数的作用

2018-04-12  本文已影响13人  苦逼李

目录

  1. lambda函数让代码看起来更简洁直观
  2. lambda函数是一个函数对象
  3. 总结

1.lambda函数让代码看起来更简洁直观

lambda函数又称匿名函数,有些情况下我们不用显式定义而采用匿名函数会让代码看上去更加简洁。

In [48]: ls = [1,2,3]

In [49]: print(list(map(lambda x:x*x, ls)))
[1, 4, 9]

上面的例子中,通过lambda函数使得我们可以在不显式定义函数的情况下为map传递了一个函数,这使得代码看上去更为简洁直观。

关键词lambda定义了一个匿名函数,冒号前面的是匿名函数的参数(当需要多个参数时,参数之间用逗号,分割),冒号后的是一个表达式,lambda函数的返回内容就是表达式的值。

2.lambda函数是一个函数对象

lambda函数也是一个函数对象,所以也可以赋值给一个变量。

In [50]: lambda x,y:x*x+y*y
Out[50]: <function __main__.<lambda>>

In [51]: f1 = lambda x,y:x*x+y*y

In [52]: f1(1,2)
Out[52]: 5

lambda函数也作为返回值返回。

In [53]: def f():
    ...:     x = 1
    ...:     return lambda y:x*x+y*y    # lambda函数引用了本地变量x,并且在函数f结束后保存了x的状态
    ...:

In [54]: m = f()

In [55]: m(2)
Out[55]: 5

In [56]: m.__closure__  # 证明m是一个闭包
Out[56]: (<cell at 0x00000132044E9E28: int object at 0x0000000051F260C0>,)

3.总结

上一篇 下一篇

猜你喜欢

热点阅读