真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

云計算開發(fā)學(xué)習(xí)筆記:Python3作用域

作用域就是一個 Python 程序可以直接訪問命名空間的正文區(qū)域。

成都創(chuàng)新互聯(lián)長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為濱城企業(yè)提供專業(yè)的做網(wǎng)站、成都網(wǎng)站設(shè)計,濱城網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

在一個 python 程序中,直接訪問一個變量,會從內(nèi)到外依次訪問所有的作用域直到找到,否則會報未定義的錯誤。

Python 中,程序的變量并不是在哪個位置都可以訪問的,訪問權(quán)限決定于這個變量是在哪里賦值的。

變量的作用域決定了在哪一部分程序可以訪問哪個特定的變量名稱。Python的作用域一共有4種,分別是:

有四種作用域:

L(Local):最內(nèi)層,包含局部變量,比如一個函數(shù)/方法內(nèi)部。

E(Enclosing):包含了非局部(non-local)也非全局(non-global)的變量。比如兩個嵌套函數(shù),一個函數(shù)(或類) A 里面又包含了一個函數(shù) B ,那么對于 B 中的名稱來說 A 中的作用域就為 nonlocal。

G(Global):當(dāng)前腳本的最外層,比如當(dāng)前模塊的全局變量。

B(Built-in): 包含了內(nèi)建的變量/關(guān)鍵字等。,最后被搜索

規(guī)則順序: L –> E –> G –>gt; B。

在局部找不到,便會去局部外的局部找(例如閉包),再找不到就會去全局找,再者去內(nèi)置中找。

內(nèi)置作用域是通過一個名為 builtin 的標準模塊來實現(xiàn)的,但是這個變量名自身并沒有放入內(nèi)置作用域內(nèi),所以必須導(dǎo)入這個文件才能夠使用它。在Python3.0中,可以使用以下的代碼來查看到底預(yù)定義了哪些變量:

Python 中只有模塊(module),類(class)以及函數(shù)(def、lambda)才會引入新的作用域,其它的代碼塊(如 if/elif/else/、try/except、for/while等)是不會引入新的作用域的,也就是說這些語句內(nèi)定義的變量,外部也可以訪問,如下代碼:

實例中 msg 變量定義在 if 語句塊中,但外部還是可以訪問的。

如果將 msg 定義在函數(shù)中,則它就是局部變量,外部不能訪問:

從報錯的信息上看,說明了 msg_inner 未定義,無法使用,因為它是局部變量,只有在函數(shù)內(nèi)可以使用。


網(wǎng)站欄目:云計算開發(fā)學(xué)習(xí)筆記:Python3作用域
分享URL:http://weahome.cn/article/cjosch.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部