您的位置:首页 > 文旅 > 旅游 > 桂林北站离哪个景区近_建设工程业绩查询网站_互联网推广是什么_销售网络平台推广

桂林北站离哪个景区近_建设工程业绩查询网站_互联网推广是什么_销售网络平台推广

2025/5/13 14:32:54 来源:https://blog.csdn.net/renchao7060/article/details/146355190  浏览:    关键词:桂林北站离哪个景区近_建设工程业绩查询网站_互联网推广是什么_销售网络平台推广
桂林北站离哪个景区近_建设工程业绩查询网站_互联网推广是什么_销售网络平台推广

在这里插入图片描述

1. 闭包(Closure)
  • 定义:闭包是一个函数与其“捕获”的外部变量(来自外层作用域的变量)的组合。即使外层函数已经执行完毕,内部函数仍能记住并访问这些变量。
  • 核心机制:当内层函数引用了外层函数的变量时,Python 会将这些变量绑定到闭包中,使其生命周期延长至闭包存在期间。

例子

def outer():x = 10  # 外层函数的变量def inner():print(x)  # 内层函数捕获了外层变量xreturn innerclosure = outer()  # outer()执行完毕,x本应被销毁
closure()  # 输出:10 → 但闭包仍然能访问x!
  • 关键点
    • 闭包的本质是 函数 + 环境变量 的捆绑。
    • 闭包中的变量是“记忆”的,而非实时查找的(注意循环陷阱,如延迟绑定问题)。

2. 作用域(Scope)

Python 使用 LEGB 规则 查找变量:

  • L(Local):当前函数内部。
  • E(Enclosing):外层嵌套函数(闭包的关键!)。
  • G(Global):模块全局作用域。
  • B(Built-in):内置函数(如 print, len)。

例子

x = "global"
def outer():x = "outer"def inner():x = "inner"print(x)       # 输出:inner (Local优先)inner()print(x)           # 输出:outer (Enclosing)
outer()
print(x)               # 输出:global (Global)
  • 闭包与作用域的联动
    当内层函数访问外层函数的变量时,Python 会将这些变量“冻结”到闭包中,即使外层函数已执行完毕,闭包仍能通过 Enclosing作用域 访问它们。

总结

  • 闭包:是函数式编程的核心概念,让函数能“记住”外部状态,是装饰器实现的基础。
  • 作用域:通过 LEGB 规则控制变量的可见性,闭包通过 Enclosing 作用域实现变量捕获。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com