打开主菜单

变量的作用域共有4种:

  • L (Local) 局部作用域
  • E (Enclosing) 外层非全局的闭包作用域
  • G (Global) 全局作用域
  • B (Built-in) 内建作用域

按照L –> E –> G –>B 的顺序查找变量。

Python 中只有模块(module)、类(class)、函数(def、lambda)才会引入新的作用域,其它的代码块(如 if/elif/else/、try/except、for/while等)不会引入新的作用域,这些语句内定义的变量,在语句的外部也可以访问。

global关键字指明要访问全局的变量。nonlocal关键字指明要访问外层非全局作用域的变量。