7 匿名函数、递归函数
python 的匿名函数使用与 c++ 略有不同
7.1 匿名函数
-
使用 lamda 关键字创建函数,表达式只能有1个,自带return返回表达式计算的结果
-
语法:
lamda
参数1,参数2:表达式import math R = lambda x, y: math.sqrt(x ** 2 + y ** 2) print(R(3, 4)) # ----- output 5.0
-
缺点:只能有一个表达式,无法定义复杂逻辑,仅适用简单逻辑的场景。
7.2 递归函数
-
与 c++ 无异,调用自身的函数,必须有递归结束的条件,最常见的阶乘例子:
def factorial(n): if n==1: return 1 # 截止条件 return n*factorial(n-1) print(factorial(5)) # ----- output 120
-
实际使用中的一个常见的场景是文件夹的树形遍历。
-
缺点:逻辑难调试,截止条件处理不好易出错,占用内存大。