python中的全域性變數 global關鍵字

2021-10-09 23:45:11 字數 933 閱讀 8327

全域性變數,顧名思義,就是全域性都可以使用的變數。一般定義在函式之外,然後函式內部通過global關鍵字描述,以區分函式內部的普通變數。一般,需要用到全域性變數的地方,我都會把這些函式寫成乙個類,然後通過類屬性變數的方法公用乙個變數。不過,很多時候用不著大動干戈去寫類。

先看乙個簡單栗子:

a = 0  # initialize variable a

def coo():

global a # call a

a += 1

return a

for i in range(10):

print(coo())

注意,變數只是乙個普通變數,首先在函式外部進行初始化,然後在函式內部通過global關鍵字呼叫這個變數,就可以實現全域性變數的功能了。看輸出就知道了,變數a會隨著函式coo()的不斷執行也在不斷變化。輸出如下:12

3456

78910

當然,全域性變數不僅僅是數,還可以是其他型別的資料結構,比如:

a = 

def coo():

global a

a += [1]

return a

for i in range(10):

print(coo())

輸出如下:

[1][1, 1]

[1, 1, 1]

[1, 1, 1, 1]

[1, 1, 1, 1, 1]

[1, 1, 1, 1, 1, 1]

[1, 1, 1, 1, 1, 1, 1]

[1, 1, 1, 1, 1, 1, 1, 1]

[1, 1, 1, 1, 1, 1, 1, 1, 1]

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

python中全域性變數

在python中,全域性變數一般有兩種使用方式 第一種 是在乙個單獨的模組中定義好,然後在需要使用的全域性模組中將定義的全域性變數模組匯入。第二種 直接在當前的模組中定義好,然後直接在本模組中通過global宣告,然後使用 具體的方法如下所示 第一種 solr url def tt global s...

Python中的全域性變數

全域性變數不符合引數傳遞的精神,所以,平時我很少使用,除非定義常量。今天有同事問乙個關於全域性變數的問題,才發現其中原來還有門道。程式大致是這樣的 constant 0 def modifyconstant print constant constant 1 return if name main ...

python 全域性變數

應該盡量避免使用全域性變數。不同的模組都可以自由的訪問全域性變數,可能會導致全域性變數的不可預知性。對全域性變數,如果程式設計師甲修改了 a的值,程式設計師乙同時也要使用 a,這時可能導致程式中的錯誤。這種錯誤是很難發現和更正的。全域性變數降低了函式或模組之間的通用性,不同的函式或模組都要依賴於全域...