闭包的流程图

闭包的流程图

通过 f = func_out(10) 创建闭包:外部函数执行结束后,内部函数仍然“记住”了外部函数的局部变量(例如 10)。

逐步理解

  1. 调用外部函数 func_out(10)
    • 生成内部函数 func_inner
    • 把外部变量(例如 num=10)保存到闭包环境
    • 返回 func_inner
  2. 赋值:f = func_out(10),此时 f 指向内部函数
  3. 调用:f() 等价于调用 func_inner(),并且它能访问外部变量 num

对照代码(示意)

def func_out(num):
    def func_inner():
        return num + 1
    return func_inner


f = func_out(10)
f()

下一步