美文网首页
Python的LEGB规则是什么?

Python的LEGB规则是什么?

作者: 鹤子青云上 | 来源:发表于2023-07-06 14:13 被阅读0次

在Python中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。我们先来看一段代码:

a = 10
def test():
    a = 20
    print('a的值是%d'%a)
test()
a的值是20

上述代码有两个变量a,当在test函数中输出变量a的值时,为什么输出的是20,而不是10呢?其实,这就是因为变量作用域不同导致的。

变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。Python变量的作用域一共有4种,分别是:

·L(local):函数内的区域,包括局部变量和参数。

·E(Enclosing):外层嵌套函数区域,常见的是闭包函数的外层函数。

·G(Global):全局作用域。

·B(Built-in):内键作用域。

Python中变量是采用L->E->G->B的规则查找,即Python检索变量的时候,会优先在函数作用域中查找,如果没有找到,便会去外层嵌套函数作用域找,再找不到就会去全局作用域中找,最后再去内键作用域中找。

相关文章

  • 2018-03-20作用域和添加实例属性和方法

    一、LEGB 规则 Python 使用 LEGB 的顺序来查找一个符号对应的对象 locals -> enclos...

  • Python | LEGB规则

    LEGB的名字取自: Locals :当前命名空间,如函数或模块 Enclosing :外部嵌套函数的命名空间(闭...

  • Python LEGB规则

    本篇总结了Python中的命名空间及LEGB原则 写在前面的话之所以有这篇总结,是因为在当初学习及使用Python...

  • python的LEGB规则

    https://blog.csdn.net/MCANDML/article/details/78501573#t0

  • 十:Python之LEGB规则

    Python在查找 ‘ 名称‘ 时,是按照LEGB规则查找的: Local --> Enclosed --> Gl...

  • Python中的LEGB规则

    前言 理解LEGB前,首先需要对Python的作用域、命名空间有一定的了解,话题才能继续展开。 命名空间 命名空间...

  • python基础2.2 True+True

    python的作用域规则:LEGB原则 为什么Python会认为两个完全不同的对象拥有相等的值?在Python中布...

  • Python3的LEGB规则

    阐述LEGB前,需要先对Python的命名空间、作用域有一定的了解。 命名空间 命名空间表示变量的可见范围,一个变...

  • python闭包和装饰器

    一、python函数作用域LEGB python解释器查找变量的原则(顺序):L→E→G→BL:Local函数内部...

  • python——作用域和给对象及类添加属性和方法

    作用域 命名空间 变量或函数生效的范围 globals、locals LEGB规则locals(当前命名空间) ...

网友评论

      本文标题:Python的LEGB规则是什么?

      本文链接:https://www.haomeiwen.com/subject/bfiludtx.html