首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深入 lambda 表达式

lambda 表达式是 python 语言中的一种用来声明匿名函数的语法,也就是无需声明函数名的函数:

让我们先来看一下 lambda 的语法书写:

1. lambda 语法示例

可以看出 lambda 的语法是 lambda 加上 形式参数 后,加冒号和函数计算式; 在上述的例子中,形式参数为 x,函数计算式为x*x-x, lambda 表达式作为一个函数类型的对象,该对象的地址保存在了变量 f 中, 通过 print 函数打印 f,即可显示该地址; f 的使用和一般函数的调用完全一致。

2. lambda 的多参数示例

lambda 表达式也可以接受多个形式参数,参见下例:

上述的代码示例中有两个形式参数 x 和 y,他们用逗号分隔;当然lambda 表达式也可以有更多的形式参数。

3. lambda 调用其他函数

lambda 表达式也支持对于其他函数的调用,参见下例:

在上述的代码示例中,f3中存储的 lambda 表达式调用了 show 函数,打印出指定个数的星号字符;f4中存储的 lambda 表达式则调用了 double 函数,并将其返回值做为计算式的一个操作数。

4. lambda 表达式的不适情况

lambda 表达式通常短小精悍,不适合在其中定义较为复杂的计算式,也不能直接调用 诸如print的语句,参见下面的示例:

lambda 表达式的冒号后面只能是表达式,切记不可书写语句。

5. lambda 表达式引用外部变量

lambda 表达式允许引用外部变量(通常为同一作用域的),参见下例:

上述代码中的 变量j就是被 lambda 表达式所引用的外部变量,很显然 f7在变量 j 的值发生变化时,其表现会很不稳定,所以笔者不推荐这样的代码表达。

6. lambda 表达式成为回调函数的参数

lambda 表达式最常见的使用是成为回调函数的参数,参见下例:

在上述的代码示例中,f8 和 f9作为回调函数caller的被调函数 callee 的实际参数,实现了不同的算法运算,给程序在运行时计算,也即动态变更算法,带来了极大的灵活性。

7. lambda 表达式使用小结

lambda 表达式短小精悍,是一种匿名函数,常作为回调函数的参数;

lambda 表达式中不能书写语句,只能书写计算式,但能调用其他函数和外部变量。

更多关于python语言方面的文章,请前往51Testing软件测试网。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券