匿名函数基础
第一 lambda 是一个表达式(expression),并不是一个语句(statement)。
- 所谓的表达式,就是用一系列“公式”去表达一个东西,比如x + 2、 x**2等等;
- 而所谓的语句,则一定是完成了某些功能,比如赋值语句x = 1完成了赋值,print 语句print(x)完成了打印,条件语句 if x < 0:完成了选择功能等等。
- lambda 可以用在一些常规函数 def 不能用的地方,比如,lambda 可以用在列表内部,而常规函数却不能。
- lambda 可以被用作某些函数的参数,而常规函数 def 也不能。
第二 lambda 的主体是只有一行的简单表达式,并不能扩展成一个多行的代码块。
lambda就是为了让它和常规函数各司其职:lambda 专注于简单的任务,而常规函数则负责更复杂的多行逻辑。
lambda argument1, argument2,... argumentN : expression
为什么要使用匿名函数?
- 减少代码的重复性;
- 模块化代码。
函数式编程
- 所谓函数式编程,是指代码中每一块都是不可变的(immutable),都由纯函数(pure function)的形式组成。这里的纯函数,是指函数本身相互独立、互不影响,对于相同的输入,总会有相同的输出,没有任何副作用。
- 函数式编程的优点,主要在于其纯函数和不可变的特性使程序更加健壮,易于调试(debug)和测试;缺点主要在于限制多,难写。
网友评论