225 字
1 分钟
17. Python 函数进阶:Lambda 与闭包

一句话理解:函数也是值;lambda 是短函数写法,闭包是仍能使用外层名字的函数。

学什么,不学什么#

学:函数对象、简单 lambda、闭包。 不学:复杂装饰器。

术语#

函数对象=可保存、传递、调用的值;lambda=单表达式匿名函数;闭包=引用外层局部名字的内部函数。

最小模板#

def make_prefixer(prefix: str):
def add_prefix(text: str) -> str:
return f"{prefix}{text}"
return add_prefix
warning = make_prefixer("注意:")
print(warning("保存代码"))

warning 得到内部函数;即使 make_prefixer 已返回,它仍记得 prefix

常见坑#

  • 只为短而写难懂 lambda;有多步逻辑用 def
  • warningwarning(...) 混淆;前者是函数,后者是调用结果。

检查点#

  • 能说出闭包记住的是哪个外层名字。

小练习#

用 lambda 把 [1, 2, 3] 映射成平方列表:list(map(lambda x: x * x, ...))

下一步#

18. Python 类、对象与实例

17. Python 函数进阶:Lambda 与闭包
https://enkiud.com/posts/prereq-17/
作者
Enkidu
发布于
2025-10-17
许可协议
CC BY-NC-SA 4.0