紀錄一下~
看看以下的code
name ="wilson"
def setName(new_name):
name = new_name
setName('wilson2.0!!!')
print(name)
本來預期姓名應該要變成'wilson2.0!!!'
but!!!
執行結果...
都希爹?!!!
立馬上網跟古哥哥討教一番,
發現...
如果沒有特別宣告
在function裡的全域變數只能讀取不能修改
而function理使用的 name = ...是怎麼樣的存在呢?
是的!
name= ... 是一個新的區域變數
那...
好想修改全域的name阿阿阿阿阿阿!!!!
好der~~
對code稍做修改
# -*- coding: UTF-8 -*-
name ="wilson"
def setName(new_name):
global name
name = new_name #--- 加上globale宣告 ---
setName('wilson2.0!!!')
print(name)
執行結果:
原來是global宣告的部分阿!
想不到在python世界裡要用全域變數反而要特別宣告
筆記筆記
沒有留言:
張貼留言