十三、python基礎:變量的作用域2(global保留字)
全局變量:
整個程序都能直接調用的變量。不管你是在哪個函數中用到的,都能直接調用。
局部變量:
只能在函數內調用的變量。當你在某個函數中定義一個變量時,它就只能在該函數內調用。
爲什麼要區分全局變量和局部變量呢?
全局變量通常會用來暫存數據,一個程序可能會調用多個函數對數據進行處理,一環扣一環處理下去,每個函數都會對這些數據進行修改,如果沒有全局變量來暫存數據,你每調用一個函數,傳入的都是原始數據,就不能做到分步執行處理了。
如果我們希望在函數中使用全局變量,必須在變量的上面加上一個“global 你的變量名“,聲明這個變量是全局變量,不是局部變量。
例如下面這個函數,如果你沒有在函數內加上global進行聲明,會報錯。
a = 0
def add():
a += 1
print(a)
add()
加上了global就能使用變量a了。
a = 0
def add():
global a
a += 1
print(a)
add()
關於變量的作用域,在後面學的閉包中,還會涉及到一個nonlocal保留字,閉包會涉及到在函數內定義另一個函數,這個時候就有可能會用到nonlocal了。關於global和nonlocal的區別,我有另一篇文章專門說明:
探討一下python中nonlocal和global的區別,純屬個人理解,有不同看法的歡迎評論區探討一下
不過如果基礎還不夠的話,現在看會覺得不好理解。
後面看閉包的時候再說明一下。