切換
舊版
前往
大廳
主題

Python筆記Day15-蝦咪是區域變數?那全域變數呢?

萬念俱灰的人最強 | 2019-08-13 00:36:50 | 巴幣 0 | 人氣 123

前言:
在看這篇文章之前,建議先去Day14了解一下LEGB規則的部分。


本文:
在Python的世界中,外頭的變數和函數裡的變數是截然不同的,你可以取相同的名字,但作用的部分,並不一樣。在函數裡面作用的部分都會以區域變數為主,不會動到外面的變數,除非你使用global。

x = 25def test(x):
    print("x is ",x)
    x = 689
    print("Changed local x to " , x)

test(x)

print("事實上x仍然是:",x)
輸出結果:
x is  25
x - > 689
事實上x仍然是: 25

欸?我不是已經把x改成689了嗎?怎麼外面還是25
函數中所改動的x,指的僅僅是test()裡面而已,不會動到外面的x。

那這樣咋辦阿老鐵?
如果要連外面的x一起改動
x = 25

def test():
    global x
    print("從外面取出來的x值為",x)
    x = 689

print("在呼叫test()之前的x值",x)
test()
print("呼叫test()後,x真的被改成",x)
輸出結果:
在呼叫test()之前的x值 25
從外面取出來的x值為 25
呼叫test()後,x真的被改成 689

題外話:
有做筆記,真的能更能了解一個語言的使用,以前都只是大略看過翻翻,不當一回事,真正要熟悉才知道,哇那麼多小細節要注意的。

今天啞鈴臥推終於突破32kg了,雖然只有一下,但終於是把學校健身房能用的啞鈴都推過,可喜可賀可喜可賀。(戒糖Day11)






創作回應

更多創作