轉自python:nonlocal和global函數探究python
Python中能改變變量做用域的是關鍵字有def,class和lamda,其內部變量爲封閉做用域;if/elif/else,while/for,try/except/else/finally等不改變變量的做用域,其內變量與外部變量做用域一致。git
變量的做用域指的是Python程序能夠直接訪問的命名空間,Python程序運行時會按順序訪問到4個命名空間,也就是4個層次的做用域,順序以下:github