新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Python之全局與局部變量-創(chuàng)新互聯(lián)
'''
命名空間?:?每次在python解釋器啟動(dòng)之后,就會(huì)在內(nèi)存開(kāi)辟一塊內(nèi)存空間,每當(dāng)遇到一個(gè)變量時(shí),就會(huì)在命名空間中,記錄下變量名和值之間的關(guān)系,也即記錄變量對(duì)應(yīng)的值在內(nèi)存空間中的
???????????地址;當(dāng)一個(gè)函數(shù)時(shí),會(huì)在命名空間中記錄下函數(shù)名以及函數(shù)的地址;
內(nèi)置命名空間?:?解釋器啟動(dòng)伊始開(kāi)辟聲明內(nèi)置函數(shù)的內(nèi)存空間;
局部命名空間?:?在函數(shù)內(nèi)部,為變量或函數(shù)開(kāi)辟的命名空間;
作用域?:?函數(shù)或變量的生命周期;
查看全局作用域中的所有內(nèi)容?:?globals()
查看局部作用域中的所有內(nèi)容?:?locals()
函數(shù)的嵌套?:?也即支持在一個(gè)函數(shù)內(nèi)部可以定義另一個(gè)函數(shù)
慎用?:
????當(dāng)需要在局部作用域內(nèi),對(duì)全局變量進(jìn)行操作時(shí),需以global關(guān)鍵字聲明,要直接對(duì)全局變量進(jìn)行操作,這里的全局,包括絕對(duì)全局和相對(duì)全局,也即可以對(duì)所有大于當(dāng)前作用域的所有
????作用域內(nèi)的所有變量進(jìn)行聲明
????當(dāng)需要對(duì)大于當(dāng)前作用域,但又并非全局作用域內(nèi)的變量進(jìn)行操作時(shí),需以nonlocal關(guān)鍵字聲明該變量;
重點(diǎn)(神坑)?:?定義函數(shù)時(shí),在同一個(gè)代碼塊內(nèi),多次調(diào)用同一個(gè)函數(shù),默認(rèn)值參數(shù)對(duì)應(yīng)的內(nèi)存空間始終不變,對(duì)默認(rèn)值參數(shù)進(jìn)行修改也始終是在默認(rèn)值參數(shù)對(duì)應(yīng)內(nèi)存空間上進(jìn)行修改;
????案例(從指針的角度理解)?:
????def?test(value,?lst?=?[])?:
????lst.append(value)
????print(lst)
????return?lst
????lst1?=?test("a")????#第一次調(diào)用test函數(shù),在lst所在內(nèi)存空間寫(xiě)入值a,打印a,并返回lst的地址
????lst2?=?test("b",?[])????#第二次調(diào)用test函數(shù),由于我們這次沒(méi)有使用lst的默認(rèn)值,而是手動(dòng)賦值,因此會(huì)為lst形參開(kāi)辟一塊新的內(nèi)存空間,并寫(xiě)入值b,打印b,
?????????????????????????????返回新開(kāi)辟的內(nèi)存空間的地址;
????lst3?=?test("c")????#第三次調(diào)用test函數(shù),由于再次使用了lst的默認(rèn)值,所以會(huì)在lst默認(rèn)開(kāi)辟的內(nèi)存空間內(nèi)寫(xiě)入c,也即["a",?"c"],打印["a",?"c"],并返回其地址;
????print(lst1)?????#lst1接收到的為test函數(shù)為lst默認(rèn)開(kāi)辟的內(nèi)存空間的地址,而默認(rèn)的內(nèi)存空間存的是["a",?"c"],因此打印結(jié)果為["a",?"c"]
????print(lst2)?????#lst2接收的是為實(shí)參新開(kāi)辟的內(nèi)存空間的地址,存的值為["b"],因此打印結(jié)果為["b"]
????print(lst3)?????#lst2接收到的為為默認(rèn)形參lst開(kāi)辟的內(nèi)存空間的地址,存的值為["a",?"c"],因此打印結(jié)果為["a",?"c"]
????結(jié)果?:
???['a']
???['b']
???['a',?'c']
???['a',?'c']
???['b']
???['a',?'c']
'''
新聞名稱(chēng):Python之全局與局部變量-創(chuàng)新互聯(lián)
瀏覽路徑:http://www.dlmjj.cn/article/pcdcj.html
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
新聞名稱(chēng):Python之全局與局部變量-創(chuàng)新互聯(lián)
瀏覽路徑:http://www.dlmjj.cn/article/pcdcj.html