Python3基礎之(十 三)全域性變數&區域性變數
阿新 • • 發佈:2018-11-16
一、區域性變數
在 def
中, 我們可以定義一個區域性變數, 這個變數 a
只能在這個功能 func
中有效, 出了這個函式,a
這個變數就不是那個區域性的 a
.
def func():
a=10
print(a)
if __name__=='__main__':
func()
下面這個例子在func外使用func裡面定義的區域性變數就會出錯,但是全域性變數在任何地方都可以使用。
q=14 #全域性變數
def func():
a=10#區域性變數
print(a)
if __name__=='__main__':
print (q)#輸出全域性變數
print(a) # 報錯, 不能拿到一個區域性變數的值
NameError: name 'a' is not defined
二、全域性變數
那如何在外部也能呼叫一個在區域性裡修改了的全域性變數呢. 首先我們在外部定義一個全域性變數 a=None
, 然後再 fun()
中宣告 這個a
是來自外部的a
. 宣告方式就是global a
. 然後對這個外部的 a
修改後, 修改的效果會被施加到外部的 a 上. 所以我們將能看到執行完 fun()
, a
的值從 None
變成了20
.
APPLY = 100 # 全域性變數
a = None
def fun() :
global a # 使用之前在全局裡定義的 a
a = 20 # 現在的 a 是全域性變量了
return a+100
print(APPLE) # 100
print('a past:', a) # None
fun()
print('a now:', a) # 20