python 非區域性變數nonlocal

2021-08-19 20:55:03 字數 431 閱讀 7695

非區域性語句可以讓所列的識別符號(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...