Python global variable
def g(): var =1 print var var = 10 print var g() print var 答案為 >>> 10 1 10 >>> 這個很容易理解,本來g()裡面的參數就不會跟外面的混為一談。 def g(): print var var = 10 print var g() print var 答案為 >>> 10 10 10 >>> 超有趣,g()中的var,居然直接找到外面的var。 def g(): print var global var var = 10 print var g() print var 答案為 >>> 10 10 10 >>> 多宣告global,跟上一種寫法一樣。好像內定就以為是global def g(): var = 1 print var global var var = 10 print var g() print var 答案為 >>> 10 1 10 >>> g()中多了var = 1怎麼又認為不是外部的var了呢?外部var明明有宣告為 global了。這樣就可理解,上兩種寫法,因為沒有在 g()中給定 var 一個值。所以python 認為g()裡面的var與外面的是一樣的。所以給一個值,python會做出新變數。這樣我們可以推論,如果有沒新宣告為global不能給值。 >>> global v = 1 SyntaxError: invalid syntax 沒錯,改成 global v #先宣告是global v = 1 嗯… def g(): global var var =1 print var var = 10