我是编程新手.首先,以下是我的代码:
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在嵌套类中添加局部时,变量搜索的顺序会发生变化.我相信还有一些关于范围的技巧我还不知道.任何人都可以向我解释这个吗?