變量是擁有匹配對象的名字(標(biāo)識符)。命名空間是一個包含了變量名稱們(鍵)和它們各自相應(yīng)的對象們(值)的字典。
一個Python表達(dá)式可以訪問局部命名空間和全局命名空間里的變量。如果一個局部變量和一個全局變量重名,則局部變量會覆蓋全局變量。
每個函數(shù)都有自己的命名空間。類的方法的作用域規(guī)則和通常函數(shù)的一樣。
Python會智能地猜測一個變量是局部的還是全局的,它假設(shè)任何在函數(shù)內(nèi)賦值的變量都是局部的。
因此,如果要給全局變量在一個函數(shù)里賦值,必須使用global語句。
globalVarName的表達(dá)式會告訴Python,VarName是一個全局變量,這樣Python就不會在局部命名空間里尋找這個變量了。
例如,我們在全局命名空間里定義一個變量money。我們再在函數(shù)內(nèi)給變量money賦值,然后Python會假定money是一個局部變量。然而,我們并沒有在訪問前聲明一個局部變量money,結(jié)果就是會出現(xiàn)一個UnboundLocalError的錯誤。取消global語句的注釋就能解決這個問題。
#!/usr/bin/python
#-*-coding:UTF-8-*-
Money=2000
defAddMoney():
#想改正代碼就取消以下注釋:
#globalMoney
Money=Money+1
printMoney
AddMoney()
printMoney
以上內(nèi)容為大家介紹了Python的命名空間和作用域,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/