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软件测试网。
领取专属 10元无门槛券
私享最新 技术干货