python3 全域性變數和區域性變數

2021-08-22 14:54:44 字數 1465 閱讀 8812

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...