變數作用域 === Python 修改全域變數時不像其他程式語言一樣直覺,必須再加上關鍵字,如下: * 修改全域變數,必須在全域變數前面加關鍵字 `global`,不加關鍵字會報錯。 ```python= a = 10 def test(): global a # 一定要加 global 關鍵字 a = a + 1 print(a) test() ``` 或是透過傳參數修改: ```python= a = 10 def test(a): a = a + 1 print(a) test(a) ``` * 修改巢狀式內的 enclosing 作用域變數,必須在變數前面加上 `nonlocal` 關鍵字,不加關鍵字會報錯。 ```python= def outer(): num = 10 def inner(): nonlocal num # 一定要加 nonlocal 關鍵字 num = 100 print(num) inner() print(num) outer() ``` ## Ref. [Python3 命名空间和作用域](https://www.runoob.com/python3/python3-namespace-scope.html) ###### tags: `語法相關`