第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么Python的非本地關(guān)鍵字不像全局范圍一樣?

為什么Python的非本地關(guān)鍵字不像全局范圍一樣?

開心每一天1111 2021-03-15 09:10:08
在Python 3.3.1中,這有效:i = 76def A():    global i    i += 10print(i) # 76A()print(i) # 86這也適用:def enclosing_function():    i = 76    def A():        nonlocal i        i += 10    print(i) # 76    A()    print(i) # 86enclosing_function()但這不起作用:i = 76def A():    nonlocal i # "SyntaxError: no binding for nonlocal 'i' found"    i += 10print(i)A()print(i)nonlocal關(guān)鍵字狀態(tài)的文檔(添加了重點(diǎn)):非本地語句使列出的標(biāo)識(shí)符引用最近的封閉范圍中的先前綁定的變量。在第三個(gè)示例中,“最近封閉范圍”恰好是全局范圍。那為什么不起作用呢?請(qǐng)閱讀此位我確實(shí)注意到文檔繼續(xù)說明(強(qiáng)調(diào)):[ nonlocal]語句允許封裝的代碼在全局(模塊)范圍之外的本地范圍之外重新綁定變量。但是,嚴(yán)格來說,這并不意味著我在第三個(gè)示例中所做的不起作用。
查看完整描述

3 回答

?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

名稱的搜索順序?yàn)長(zhǎng)EGB,即本地,封閉,全局,內(nèi)置。因此,全局范圍不是封閉范圍。

編輯

從文檔:

非本地語句使列出的標(biāo)識(shí)符引用最近的封閉范圍中的先前綁定的變量。這很重要,因?yàn)榻壎ǖ哪J(rèn)行為是首先搜索本地名稱空間。該語句允許封裝的代碼在全局(模塊)作用域之外的本地作用域之外重新綁定變量。


查看完整回答
反對(duì) 回復(fù) 2021-03-29
?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊

答案是全局范圍不包含任何內(nèi)容-它對(duì)所有內(nèi)容都是全局的。global在這種情況下,請(qǐng)使用關(guān)鍵字。


查看完整回答
反對(duì) 回復(fù) 2021-03-29
?
慕無忌1623718

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊

為什么將模塊的作用域視為全局作用域而不是封閉的作用域?它對(duì)于其他模塊仍然不是全局的(嗯,除非您這樣做了from module import *),對(duì)嗎?

如果您在的名稱module空間中添加了一些名稱;它在使用的任何模塊中都是可見的,module即,它在整個(gè)Python過程中都是全局的。

通常,您的應(yīng)用程序應(yīng)使用盡可能少的可變?nèi)肿兞?。?qǐng)參閱為什么全局變量不好?:

  • 非地區(qū)性

  • 無訪問控制或約束檢查

  • 隱式耦合

  • 并發(fā)問題

  • 命名空間污染

  • 測(cè)試與禁閉

因此,如果nonlocal允許偶然創(chuàng)建全局變量將是不好的。如果要修改全局變量;您可以global直接使用關(guān)鍵字。

  • global 是最具破壞性的:可能會(huì)影響程序中模塊的所有使用

  • nonlocal 破壞性較?。菏躤xternal()函數(shù)作用域的限制(在編譯時(shí)檢查綁定)

  • 沒有聲明(局部變量)是破壞性最小的選項(xiàng):受inner()函數(shù)作用域的限制

您可以nonlocal在《PEP:3104訪問外部范圍中的名稱》中了解其背后的歷史和動(dòng)機(jī)。


查看完整回答
反對(duì) 回復(fù) 2021-03-29
  • 3 回答
  • 0 關(guān)注
  • 218 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)