全域性變數在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 的作用域規則是,變數的建立總是會建立乙個新的區域性變數但是變數的訪問 包括修改 在區域性作用域查詢...