转自python:nonlocal和global函数探究python
Python中能改变变量做用域的是关键字有def,class和lamda,其内部变量为封闭做用域;if/elif/else,while/for,try/except/else/finally等不改变变量的做用域,其内变量与外部变量做用域一致。git
变量的做用域指的是Python程序能够直接访问的命名空间,Python程序运行时会按顺序访问到4个命名空间,也就是4个层次的做用域,顺序以下:github