Python變量作用域范圍

關(guān)鍵詞: python;作用域; Variable Scope;

1杏节、Python中能夠改變變量作用域的代碼段是def、class、lamda三類哩簿。
代碼塊:if/elif/else衣屏、try/except/finally躏升、for/while 等不更改變量的作用域,在其作用范圍之外狼忱,仍然能夠訪問到變量膨疏。
2、Python變量搜索順序是局部變量---上層變量---全局變量钻弄。

變量作用域

代碼示例:

def scopetest():
    localvar=6;
    print(localvar)  
scopetest()
#print(localvar) #去除注釋這里會報(bào)錯(cuò)佃却,因?yàn)閘ocalvar是本地變量
while True:  
    newvar=8  
    print(newvar)  
    break;    
print(newvar)    
try:  
    newlocal=7  
    raise Exception  
except:  
    print(newlocal) #代碼塊外可以訪問
Out:
6
8
8
7
number = 5
def func0():
    #It's OK to reference.
    print number

def func1():
    #new local variable.
    number = 10
    print number

def func2():
    #global declaration.
    global number
    print number
    number = 10
    print number

print "Before calling any function, number is {}".format(number)
print "Calling func0()----------"
func0()
print "Calling func1()----------"
func1()
print "After calling func1(), number is {}".format(number)
print "Calling func2()----------"
func2()
print "After calling func2(), number is {}".format(number)
Out:
Before calling any function, number is 5
Calling func0()----------
5
Calling func1()----------
10
After calling func1(), number is 5
Calling func2()----------
5
10
After calling func2(), number is 10
變量搜索順序:
def scopetest():  
    var=6;  
    print(var)
    def innerFunc():  
        print(var)  #look here  
    innerFunc()        
var=5   
print(var)  
scopetest()  
print(var)  
Out: 
5
6
6
5

根據(jù)調(diào)用順序反向搜索,先本地變量再全局變量窘俺,例如搜先在innerFunc中搜索本地變量饲帅,沒有,向上一級scopetest,發(fā)現(xiàn)本地變量var=6洒闸,輸出染坯。

參考:
Python Variable Scope
Python 變量作用域

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市丘逸,隨后出現(xiàn)的幾起案子单鹿,更是在濱河造成了極大的恐慌,老刑警劉巖深纲,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仲锄,死亡現(xiàn)場離奇詭異,居然都是意外死亡湃鹊,警方通過查閱死者的電腦和手機(jī)儒喊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來币呵,“玉大人怀愧,你說我怎么就攤上這事∮嘤” “怎么了芯义?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長妻柒。 經(jīng)常有香客問我扛拨,道長,這世上最難降的妖魔是什么举塔? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任绑警,我火速辦了婚禮,結(jié)果婚禮上央渣,老公的妹妹穿的比我還像新娘计盒。我一直安慰自己,他們只是感情好芽丹,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布北启。 她就那樣靜靜地躺著,像睡著了一般志衍。 火紅的嫁衣襯著肌膚如雪暖庄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天楼肪,我揣著相機(jī)與錄音培廓,去河邊找鬼。 笑死春叫,一個(gè)胖子當(dāng)著我的面吹牛肩钠,可吹牛的內(nèi)容都是我干的泣港。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼价匠,長吁一口氣:“原來是場噩夢啊……” “哼当纱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起踩窖,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤坡氯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后洋腮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體箫柳,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年啥供,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了悯恍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡伙狐,死狀恐怖涮毫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贷屎,我是刑警寧澤罢防,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站豫尽,受9級特大地震影響篙梢,放射性物質(zhì)發(fā)生泄漏顷帖。R本人自食惡果不足惜美旧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贬墩。 院中可真熱鬧榴嗅,春花似錦、人聲如沸陶舞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肿孵。三九已至唠粥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間停做,已是汗流浹背晤愧。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛉腌,地道東北人官份。 一個(gè)月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓只厘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親舅巷。 傳聞我的和親對象是個(gè)殘疾皇子羔味,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內(nèi)容