小编cls*_*999的帖子

嵌套类与范围

我是编程新手.首先,以下是我的代码:

x = 11

def f():
    x = 22
    print(x)
    class C:
        print(x)

f()
Run Code Online (Sandbox Code Playgroud)

我得到三个打印结果,"22 22",作为输出.当我改变我的代码时:

x = 11

def f():
    x = 22
    print(x)
    class C:
        print(x)
        x = 33
        print(x)

f()
Run Code Online (Sandbox Code Playgroud)

我得到了"22 11 33",而不是我所期待的:"22 22 33".

看起来当我x在嵌套类中添加局部时,变量搜索的顺序会发生变化.我相信还有一些关于范围的技巧我还不知道.任何人都可以向我解释这个吗?

python scope

5
推荐指数
0
解决办法
48
查看次数

标签 统计

python ×1

scope ×1