非區域性語句可以讓所列的識別符號(identifier)指向
最近的巢狀作用域(enclosing scope)中已經繫結過的變數,全域性變數除外。具體參考這篇文章:
def a():
i = 0
def b():
i=i+1
b()a()
b()中並不會賦值,a()和b()中i重名,報錯local variable 'i' referenced before assignment
def a():
i = 0
def b():
nonlocal i
i=i+1
b()a()
b()雖然可以讀到a()中的變數i,但不會對其可寫,nonlocal可以指定b()中i的賦值物件指定為a()中i python函式區域性變數
python簡單變數 不考慮類變數 分為兩類 函式內定義的區域性變數,和函式外定義的全域性變數 基本訪問規則 1.在函式內部,可以直接 讀取訪問全域性變數 注意唯讀 usr bin env python i 10 def f j i 1 讀取全域性變數i f print i d i 2.在函式內部,...
python學習 區域性變數
當你在函式定義內宣告變數的時候,它們與函式外具有相同名稱的其他變數沒有任何關係,即變數名稱對於函式來說是區域性的。這稱為變數的作用域。所有變數的作用域是它們被定義的塊,從它們的名稱被定義的那點開始。例子 1 usr bin python 2 filename func local.py 4 x 50...
python全域性變數 區域性變數
定義在函式內的變數有區域性作用域,在乙個模組中最高端別的變數有全域性作用域。全域性變數的乙個特徵是除非被刪除掉,否則它們的存活到指令碼執行結束,且對於所有的函式,它們的值都是可以訪問的。global str global string def foo local str local string r...