詳解python 區域性變數與全域性變數

pythontab發表於2012-12-20

本文將詳細分析python的全域性變數與區域性變數,學過php的人都知道,php裡面的全域性變數是無法在function裡面去使用的,只有超全域性變數才可以,那麼python會怎麼處理全域性變數與區域性變數呢?下面我們來看一下:


其實python裡面的全域性變數,一般跟c語言裡面是一樣的

language = 'python'
def foo1():
    language = 'hello' # 這裡是區域性變數
    print(language ) # 打出hello,並且不會影響全域性變數language (全域性那個bar仍然是'python')
def foo2():
    print(language ) # 打出python # 因為沒有宣告區域性變數所以python會搜尋全域性的language ,這個bar是全域性的
def foo3():
    global language # 告訴python下面的bar是全域性的
    language = 'hello' # 這裡是全域性變數
    print(language) # 打出hello,全域性的language 已經改為hello不再是python了
#再列印一下language 看一下
print(language)#列印出hello,因為在foo3裡全域性變數已經被改變了

這也說明使用這種方式可以更改python的全域性變數


但是這與php裡面不同:

$name = 'php';
function foo1{
    echo $name; 
}
foo1 //將會得到一條警告:name變數不存在


所以各位同學在做python開發時一定要注意區分


相關文章