1.局部作用域(Local)
(1)最内部,包含局部变量,比如def/class/lambda内部,如下sum是局部变量,作用域是add函数下面
(2)局部作用域可以引用全局变量,但是不能修改,如果需要修改,需要用global关键字申明
2.嵌套作用域(Enclosing)
包含了非局部也非全局的变量,比如A函数下面嵌套B函数,那么对于 B 中的名称来说 A 中的作用域就为 nonlocal
3.全局作用域(Global)
包含当前模块的全部变量
4.内建作用域(Built-in)
包含了内建的变量/关键字等
规则顺序:由内及外 局部作用域(L)-》嵌套作用域(E)-》全局作用域(G)-》内建作用域(B)