嵌套类与范围

时间:2017-11-23 01:19:30

标签: python scope

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

x = 11

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

f()

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

x = 11

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

f()

我得到了" 22 11 33"而不是我期待的:" 22 22 33"。

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

0 个答案:

没有答案