上QQ阅读APP看书,第一时间看更新
1.5.3 匿名函数
对于一些功能比较简单的函数,我们不必拘泥于定义函数名、定义函数体和定义返回值这样的形式,可以通过匿名函数的方式来简化代码。注意,匿名函数也叫lambda表达式。在如下的LambdaDemo.py案例中,我们将演示匿名函数的定义和调用方法。
01 calSquareSum = lambda x,y: x*x + y*y 02 print(calSquareSum(3,4)) # 25 03 calSum = lambda x1,x2,x3 : x1+x2+x3 04 print(calSum(2,4,6)) # 12
在第1行里,我们通过lambda关键字定义了实现求平方和功能的匿名函数,它返回x的平方加y的平方的数值,同时用calSquareSum变量接收了该匿名函数。这种写法与常规函数的定义方式相比简洁了许多,所以能提升代码的可读性。
在第2行里,我们给出了调用匿名函数的方式,即calSquareSum(3,4),结果是25。在第3行里我们给出了匿名函数的另一个案例,这里是求x1、x2、x3的和。在第4行里我们调用了该匿名函数,结果是12。
由于在第1行和第3行定义的lambda表达式没有函数名,因此叫“匿名函数”。calSquareSum和calSum是接收匿名函数的对象,不是函数名。在定义和使用匿名函数时请注意:匿名函数只适用于函数体比较简单的场景,比如上例中函数体代码只有一句,函数体比较复杂时,不建议使用匿名函数。