分享

3分钟了解Python中的作用域

 zjshzq 2023-11-25 发布于浙江
自由坦荡的湖泊AI
自由坦荡的湖泊AI
2023-10-2 06:05

作用域是一个Python程序中可以直接访问命名空间的文本区域。命名空间是从名称到对象的映射,用于管理不同代码库中的变量、函数、类等标识符。直接访问的意思是,一个没有限定的引用(如变量名)会尝试在命名空间中找到这个名称。

Python中有四种常见的作用域,分别是:

  • 局部作用域(Local):最内层,包含局部变量,比如一个函数/方法内部。
  • 嵌套作用域(Enclosing):包含了非局部 (non-local)也非全局 (non-global)的变量。比如两个嵌套函数,一个函数(或类) A 里面又包含了一个函数 B ,那么对于 B 中的名称来说 A 中的作用域就为 nonlocal。
  • 全局作用域(Global):当前脚本的最外层,比如当前模块的全局变量。
  • 内置作用域(Built-in):包含了内建的变量/关键字等,最后被搜索。

Python中的作用域是静态的,也就是说变量被赋值、创建的位置决定了其被访问的范围,而不是在运行时动态改变。Python中使用 LEGB 规则来确定一个变量在哪个作用域中被找到。LEGB 是 Local、Enclosing、Global 和 Built-in 的缩写,表示从最内层到最外层的查找顺序。如果在所有作用域中都找不到变量,就会抛出 NameError 异常。

3分钟了解Python中的作用域

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多