首先我们先回顾一下,lambda表达式的基本语法。
lambda expression : return返回值
lambda x: x **3
result = lambda x: x **3
result(2)
8
expression对应的是常规函数中的参数列表。在这个简答的例子中,只有一个参数x。
返回值和参数列表用冒号相隔开。返回参数x的立方。
匿名函数的立即调用
(lambda: 3)()
3
lambda: 3()
<function __main__.<lambda>()>
细心的同学应该发现了,他们之间的唯一区别就是,第一个表达式包裹了括号,第二没有。所得出的结果就是一个是调用函数,一个只是输出函数的名字。这是lambda在python中的语法特性之一。这只是一个语法特性,我有必要写下来给别人看吗?