當內部作用域想修改外部作用域的變量時,就要用到global和nonlocal關鍵字了。
以下實例修改全局變量 num:
以上實例輸出結果:
如果要修改嵌套作用域(enclosing 作用域,外層非全局作用域)中的變量則需要 nonlocal 關鍵字了,如下實例:
以上實例輸出結果:
另外有一種特殊情況,假設下面這段代碼被運行:
以上程序執行,報錯信息如下:
錯誤信息為局部作用域引用錯誤,因為 test 函數中的 a 使用的是局部,未定義,無法修改。
修改 a 為全局變量,通過函數參數傳遞,可以正常執行輸出結果為:








