前面学习了Python中的函数,本文学习一下匿名函数。Python 使用 lambda 来创建匿名函数。所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
使用lambda时,要注意的是:
lambda 只是一个表达式,函数体比 def 简单很多。
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
格式:
lambda 函数的语法只包含一个语句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
注意:
关键字lambda表示匿名函数,冒号前面的表示函数的参数,可以传入任意个。
匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。
用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数。
例如:
my_sum = lambda arg1, arg2 : arg1 + arg2
# 调用lambda表达式,并打印结果
print("lambda 表达式计算: ", my_sum(20, 30))
print("lambda 表达式计算: ", my_sum(30, 40))
运行结果:
lambda 表达式计算: 50
lambda 表达式计算: 70
小结:
Python 使用 lambda 来创建匿名函数。lambda 只是一个表达式,函数体比 def 简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数。
更多了解,可关注公众号:人人懂编程
微信公众号:人人懂编程
网友评论