bloggerAds

2021年4月28日 星期三

全域變數

今天在使用全域變數時赫然發現有趣的狀況
紀錄一下~
看看以下的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世界裡要用全域變數反而要特別宣告
筆記筆記

沒有留言:

張貼留言