11-全局变量可以在局部作用域中读取
3.6.3 全局变量可以在局部作用域中读取
请看以下程序:
def spam():
print(eggs)
eggs = 42
spam()
print(eggs)
可以在https://autbor.com/readglobal/上查看这个程序的执行情况。因为在 spam()
函数中,没有变量名为 eggs
,也没有代码为 eggs
赋值,所以当 spam()
函数使用 eggs
时,Python认为它是对全局变量 eggs
的引用。这就是前面的程序运行时会输出42的原因。