Python 使用 LEGB 的顺序来查找一个符号对应的对象
locals -> enclosing function -> globals -> builtins
def fun1(): a = 10 def fun2(): print(a)
a = 1 def fun(): # 需要通过 global 指令来声明全局变量 global a # 修改全局变量,而不是创建一个新的 local 变量 a = 2
builtins,内建模块的命名空间。
Python 在启动的时候会自动为我们载入很多内建的函数、类, 比如 dict,list,type,print,这些都位于 __builtin__ 模块中, 可以使用 dir(__builtin__) 来查看。