Python匿名函数快速入门

定义

匿名函数,顾明思义就是一种隐匿了名字的函数。Python中使用lambda语法定义匿名函数,只需用表达式而无需申明。

lambda语法的定义如下:

除了没有函数名,其语法与一般函数的定义相同。(名字即为常说的标识符)

匿名函数优点

1.不用取名称,因为给函数取名是比较头疼的一件事,特别是函数比较多的时候;

2.可以直接在使用的地方定义,如果需要修改,直接找到修改即可,方便以后代码的维护工作;

3.语法结构简单,不用使用 def 函数名(参数名): 这种方式定义,直接使用lambda 参数:返回值 定义即可。

lambda这个名称来自于LISP,而LISP则是从lambda calculus(一种符号逻辑形式)取这个名称的。在Python中,lambda作为一个关键字,作为引入表达式的语法。想比较def函数,lambda是单一的表达式,而不是语句块!你仅能够在lambda中封装有限的业务逻辑,这样设计的目的:让lambda纯粹为了编写简单的函数而设计,def则专注于处理更大的业务。

与普通函数差异

普通函数:

匿名函数:

详解:这里的b并不是匿名函数的名字,可类比js中var fun1=function(){}与function fun2(){}中的不同,fun1本质上是拿到了定义函数的内存地址,通过地址访问来调用函数,而fun2这里本身便是function定义的标识符。

通俗易懂:将函数比作一座房子,我们需要进入房子即调用函数,只需要有房子的钥匙即可,并不需要自己是房子的主人,而这里,fun1就是外来者,但是他拥有钥匙,因而可以进入房子,而fun2是房子本身的主人,自然也拥有钥匙,也可以进入房子。

而匿名函数就是一个没有主人的房子!只需要有钥匙即可进入。

实例

执行结果:

[1, 4, 9, 16, 25, ......]

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180617G1H5GP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券