位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > Python > 問(wèn)題詳情

命名空間和作用域——python

提問(wèn)人:楊紫紅發(fā)布時(shí)間:2020-11-25

變量是擁有匹配對(duì)象的名字(標(biāo)識(shí)符)。命名空間是一個(gè)包含了變量名稱(chēng)們(鍵)和它們各自相應(yīng)的對(duì)象們(值)的字典。一個(gè)Python表達(dá)式可以訪問(wèn)局部命名空間和全局命名空間里的變量。同名隱藏的原則同C/C++ 每個(gè)函數(shù)都有自己的命名空間。類(lèi)的方法的作用域規(guī)則和通常函數(shù)的一樣。默認(rèn)任何在函數(shù)內(nèi)賦值的變量都是局部的。因此,如果要給全局變量在一個(gè)函數(shù)里賦值,必須使用global語(yǔ)句。 global VarName的表達(dá)式會(huì)告訴Python,VarName是一個(gè)全局變量,這樣Python就不會(huì)在局部命名空間里尋找這個(gè)變量了。 例如,我們?cè)谌置臻g里定義一個(gè)變量money。我們?cè)僭诤瘮?shù)內(nèi)給變量money賦值,然后Python會(huì)假定money是一個(gè)局部變量。然而,我們并沒(méi)有在訪問(wèn)前聲明一個(gè)局部變量money,結(jié)果就是會(huì)出現(xiàn)一個(gè)UnboundLocalError的錯(cuò)誤。取消global語(yǔ)句的注釋就能解決這個(gè)問(wèn)題。

image.png

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部