日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
在Python中如何快速創(chuàng)建一個(gè)只讀字典?

不少人喜歡在 Python 項(xiàng)目中,使用字典來存放各種數(shù)據(jù)。雖然這不是一個(gè)好習(xí)慣,但是對(duì)于少量數(shù)據(jù)來說,用字典無疑是最簡單方便的做法。但前提是,不要一不小心把字典里面的值給覆蓋了。

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

我們知道,當(dāng)我們向字典添加數(shù)據(jù)的時(shí)候:

 
 
 
 
  1. a = {'name': 'kingname', 'salary': 99999} 
  2. a['address'] = '上海' 

當(dāng)我們讀取字典的時(shí)候,一般寫作:

 
 
 
 
  1. a['address'] 

所以在代碼里面,確實(shí)存在一不小心把字典覆蓋了的情況,例如:

 
 
 
 
  1. is_rich_man = a['salary'] == 99999 

正常情況下,is_rich_man應(yīng)該等于 True 或者 False。但如果漏寫了一個(gè)等號(hào),變成:

 
 
 
 
  1. is_rich_man = a['salary'] = 99999 

那么,字典里面的數(shù)據(jù)就會(huì)被覆蓋。但代碼并不會(huì)報(bào)錯(cuò),如下圖所示:

所以,我們是否有什么辦法,實(shí)現(xiàn)一個(gè)一旦初始化,就不能修改的字典呢?

實(shí)際上 Python自帶了這個(gè)功能,就是types.MappingProxyType。使用它,可以輕易實(shí)現(xiàn)一個(gè)不能修改的字典:

 
 
 
 
  1. from types import MappingProxyType 
  2.  
  3. info = {'name': 'kingname', 'salary': 99999} 
  4. safe_info = MappingProxyType(info) 
  5. print('kingname 的月薪是:', safe_info['salary']) 
  6. safe_info['salary'] = 0 

運(yùn)行效果如下圖所示:

MappingProxyType像是擋在字典前面的一面盾牌,從前面是無法修改數(shù)據(jù)的,但是,如果你確實(shí)需要修改數(shù)據(jù),那么你可以直接修改原始的字典,此時(shí),修改會(huì)反映到 MappingProxyType 處理過的對(duì)象上面,如下圖所示:

這樣,你在處理數(shù)據(jù)時(shí),進(jìn)可攻,退可守,讓可信任的代碼修改數(shù)據(jù),防止不信任的代碼修改數(shù)據(jù),一舉兩得。

 


網(wǎng)頁題目:在Python中如何快速創(chuàng)建一個(gè)只讀字典?
轉(zhuǎn)載源于:http://www.5511xx.com/article/dpidghs.html