小编mmt*_*het的帖子

用于包含范围的Python locals()

TL; DR:我想要一个在包含范围内查找的locals().

大家好.

我正在向一些化学家朋友讲授Python编程课程,我想确保我真正了解范围.

考虑:

def a():
    x = 1
    def b():
        print(locals())
        print(globals())
    b()
Run Code Online (Sandbox Code Playgroud)

Locals打印一个空的环境,globals打印通常的全局变量.如何访问存储x的环境?很明显,口译员知道它,因为我可以参考它.

相关:什么时候发生范围?仅当包含x = 3时,a = x + 2上的以下nameErrors:

def a():
    x = 1
    def b():
        a = x+2
        x = 3
    b()
Run Code Online (Sandbox Code Playgroud)

如果您注释掉x = 3,则代码可以正常工作.这是否意味着python在解释代码之前会对代码进行词法范围传递?

python environment scope locals python-3.x

8
推荐指数
2
解决办法
4918
查看次数

标签 统计

environment ×1

locals ×1

python ×1

python-3.x ×1

scope ×1