1. 程式人生 > >Python3基礎之(十 三)全域性變數&區域性變數

Python3基礎之(十 三)全域性變數&區域性變數

一、區域性變數

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