1.定義在函式內部的變數稱為區域性變數(函式的形參也是區域性變數)
2.區域性變數只能在函式內部使用
3.區域性變數在函式呼叫時才能夠被建立,在函式呼叫之後會自動銷毀
1.定義在函式外部,模組內部的變數稱為全域性變數
2.全域性變數,所有函式都可以直接訪問(但函式內部不能直接修改全域性變數的繫結關係)
示例:
a = 100
b = 200
def fn(c):
d = 300
print(a,b,c,d)
fn(300)
print('a=',a)
區域性變數說明:
1.在函式內首次對變數賦值是建立區域性變數,再次為變數賦值是修改區域性變數的繫結關係
2.在函式內部的賦值語句不會對全域性變數造成影響
作用域也叫命名空間,是訪問變數時查詢變數名的範圍空間
python的四個作用域lege
作用域 英文解釋 英文簡寫
區域性作用域(函式內) local(function) l
外部巢狀函式作用域 enclosing function lacals e
函式定義所在模組的作用域 global(module) g
python內建模組的作用域 builtin(python) b
1.本地變數
2.包裹此函式的外部巢狀函式內部的變數
3.全域性變數
4.內建變數
globals() / locals() 函式
golbals() 返回全域性作用域內變數的字典
locals() 返回區域性作用域內變數的字典
作用:1.告訴解釋執行器,global語句宣告的乙個或多個變數,這些變數的作用域為模組級的作用域的變數,也全域性全域性變數
2.全域性宣告(global)
將賦值變數對映到模組檔案內部的作用域
語法:
global 變數1,變數2...示例:
global ga,gb
說明:
1. 全域性變數如果要在函式內部被賦值,則必須經過全域性宣告,否則會被認為是區域性變數
2. 全域性變數在函式內部不經過宣告就可以直接訪問
3. 不能先宣告區域性變數,再用global宣告為全域性變數,不符合規則
4. global變數列表裡的變數名不能出現在次作用域內的形參列表
作用:告訴直譯器,nonlocal宣告的變數不是區域性變數,也不是全域性變數,而是外部巢狀函式內的變數
語法:nonlocal 變數名1,變數名2,...
說明:1.nonlocal語句只能在被巢狀函式內部進行使用
2.訪問nonlocal變數將對外部巢狀函式作用域內的變數進行操作
3.當有兩層或兩層以上函式巢狀時,訪問nonlocal變數只對最近一層的變數進行操作
4.nonlocal語句的變數列表的變數名不能出現在此函式的引數列表裡
python全域性變數和區域性變數
總體來說跟c 差不多 有一點不一樣的是,當乙個全域性變數在某一函式中出現了賦值之後,函式中使用的是相同名字的區域性變數,而全域性變數不受影響 如a 100 def f a 100 print a f 這裡,函式內部的變數名如果第一次出現,且出現在 前面,即被視為定義乙個區域性變數。而函式中的a是乙個...
python全域性變數和區域性變數
當你在函式定義內宣告變數的時候,它們與函式外具有相同名稱的其他變數沒有任何關係,即變數名稱對於函式來說是 區域性 的。這稱為變數的 作用域 所有變數的作用域是它們被定義的塊,從它們的名稱被定義的那點開始。使用區域性變數 usr bin python filename func local.py de...
Python全域性變數和區域性變數
定義在函式內部的變數擁有乙個區域性作用域,定義在函式外的擁有全域性作用域。區域性變數只能在其被宣告的函式內部訪問,而全域性變數可以在整個程式範圍內訪問。呼叫函式時,所有在函式內宣告的變數名稱都將被加入到作用域中。如下例項 total 0 這是乙個全域性變數 可寫函式說明 def sum arg1,a...