Python匿名函数¶
通常, 函数是如下定义的:
def 函数名(参数列表):
函数体
这样的函数称为命名函数.
与命名函数相对应的是匿名函数(又称lambda表达式), 定义匿名函数的语法格式为:
lambda [args]: expression
lambda是定义匿名函数的关键字, [args]作为可选参数, 表示函数的参数列表.
Python对匿名函数的支持有限, 只能在一些简单的情况下使用匿名函数.
匿名函数只能有一个ie表达式, 不需要使用return关键字, 表达式的值就是函数的返回值.
匿名函数是一个函数对象, 可以将匿名函数赋值给一个变量, 这样就可以通过该变量来调用匿名函数:
var = lambda [args]: expression
var()
还可以将匿名函数作为函数的返回值.
例如, 定义一个常规函数计算两个数之和:
def add(x, y):
return x + y
print(add(2, 3))
定义一个匿名函数计算两个数之和:
add = lambda x, y: x + y
print(add(2, 3))
可以这样理解匿名函数, 其实就是简单函数(函数体只有一行)的简写版本. 相比常规函数, 匿名函数具有以下优势:
- 对于单行函数, 使用匿名函数可以省去定义函数的过程, 让代码更加简洁;
比如, 当我们将函数作为参数传递时, 有些时候, 直接传入匿名函数比显式定义函数更方便.
- 使用匿名函数, 因为函数没有名称, 不必担心函数名冲突;
- 对于不需要多次复用的函数, 使用匿名函数可以在使用完之后立即释放, 提高程序执行的性能.
注解
匿名函数就是简单常规函数的简写形式, 常规函数能使用的地方, 匿名函数都能使用.
常规函数的一些特点, 比如赋值给变量, 作为参数传递给其它函数, 作为其它函数的返回值, 匿名函数也都支持.