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

2021-08-31 19:07:22 字數 1378 閱讀 7896

全域性變數在python中要大寫,區域性變數要小寫

name = 'ybl'

這個變數沒有任何的縮排,在專案任何地方都可以呼叫,這就是全域性變數

區域性變數就是在子程式中定義的

def

change_name():

x =1#這個就是區域性變數

print

('change_name'

,name)

change_name(

)

如果這個變數名字和全部變數名字相同,那麼區域性變數名字會覆蓋全域性變數名字

想讓區域性變數在全域性中使用,可以在修改變數的開頭加乙個global和變數名,在這裡定義變數名修改了全域性的該變數名,所以在全域性中再次使用該變數的時候,用的是global後宣告的那個

name =

'最外面的全域性變數'

defq()

:global name

name =

'被global變成的全域性變數'

print

('到底是哪個:'

,name)

defw()

:print

('第二個函式使用的全域性:'

,name)w()

#如果這時候是先輸出w,那麼name還是未被global改變的,所以輸出的name是最外邊的全域性變數

q()

也可以不宣告變數,直接在裡面使用該類的方法

name =

['ybl'

,'lzg'

]def

gao():

'wb'

)#什麼型別就可以用什麼型別的方法

print

(name)

gao(

)

一到有趣的題:

name =

'ybl'

defq()

: name =

'wb'

defqq()

:global name

name =

'lzg'

qq()print

(name)

print

(name)q()

print

(name)

答案是ybl wb lzg

在這裡全域性變數name是ybl,首先輸出ybl,然後進入函式q,走完name = wb之後進入函式qq,這裡函式qq把全域性變數改編成了lzg,出來之後把q輸出(wb),最後再輸出一次全域性變數,所以就是ybl、wb、lzg

還有乙個叫做nonlocal的關鍵字,如果說global是修改全域性變數的關鍵字,那麼nonlocal就是修改上一級變數的關鍵字,只有兩層會報錯

static全域性 區域性變數,全域性變數及區域性變數

1 static變數和全域性變數都是分配在 靜態儲存區 2 static全域性變數 static區域性變數 全域性變數和區域性變數區別 他們都是分配在 靜態儲存區內,都是在程式開始的時候初始化的,他們的區別是作用域不同,static全域性變數作用域是在申明所在的檔案中,而全域性變數是全域性的,其他檔...

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

name gongwei 要在函式裡修改全域性變數,需要用globle home earth china cq def change name home 地球 注意只有字串和單獨數值在區域性變數中修改全域性變數要用globle輔助,其他如列表 字典可以直接修改 global name name xu...

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

在python中全域性變數可以作用於所有域,而函式內部呼叫時會優先使用區域性變數,如果搜尋不到區域性變數就會在全域性中搜尋相同的變數 當然,以上並不意味著我們不能在函式內部使用全域性變數。python 的作用域規則是,變數的建立總是會建立乙個新的區域性變數但是變數的訪問 包括修改 在區域性作用域查詢...