Python全域性變數和區域性變數

2022-06-19 12:39:12 字數 1580 閱讀 2648

python全域性變數和區域性變數:

定義在函式內的為區域性變數,在外部訪問區域性變數會出現未定義的錯誤

定義在函式外的變數稱為全域性變數,可以在整個函式範圍內訪問

當函式中存在與全域性變數重名的變數,以函式中的區域性變數為準

定義在函式中的區域性變數的作用域只在函式中

#

定義全域性變數 total

total =0

defadd(num1,num2):

#定義區域性變數 total

total = num1 +num2

#輸出區域性變數

print

(total)

add(4,6)#10

print

(total)

#0

在函式內部,如果想要修改外部變數時,可以使用 global 或 nonlocal 關鍵字

global 全域性變數名:

在函式中使用全域性變數,可以對全域性變數進行修改。

注:如果只是在函式中使用了和全域性變數相同的名字,則只是區域性變數

#

定義全域性變數 total

total =0

defadd(num1,num2):

#使用 global 關鍵字宣告全域性變數 total

global

total

total = num1 +num2

#輸出全域性變數

print

(total)

add(4,6)#10

#輸出全域性變數

print

(total)

#10

nonlocal 巢狀作用域中的變數(巢狀函式,外層函式與內層函式之間):

修改巢狀函式之間的變數

#

nonlocal 巢狀作用域中的變數(巢狀函式,外層函式與內層函式之間):

#修改巢狀函式之間的變數

deffunc_out():

num = 5

deffunc_inner():

#使用巢狀函式中的 num 值

nonlocal num

num = 10

print("

最內部函式中的 num 的值:

",num)

func_inner()

print("

巢狀函式中的 num 的值:

",num)

func_out()

#最內部函式中的 num 的值: 10

#巢狀函式中的 num 的值: 10

2020-02-12

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