Python中怎么创建一个只读字典

Python 中怎么创建一个只读字典,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、网站设计、东风网络推广、微信平台小程序开发、东风网络营销、东风企业策划、东风品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供东风建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

我们知道,当我们向字典添加数据的时候:

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

当我们读取字典的时候,一般写作:

a['address']

所以在代码里面,确实存在一不小心把字典覆盖了的情况,例如:

is_rich_man = a['salary'] == 99999

正常情况下,is_rich_man应该等于 True 或者 False。但如果漏写了一个等号,变成:

is_rich_man = a['salary'] = 99999

那么,字典里面的数据就会被覆盖。但代码并不会报错,如下图所示:

Python 中怎么创建一个只读字典

所以,我们是否有什么办法,实现一个一旦初始化,就不能修改的字典呢?

实际上 Python自带了这个功能,就是types.MappingProxyType。使用它,可以轻易实现一个不能修改的字典:

from types import MappingProxyType  info = {'name': 'kingname', 'salary': 99999} safe_info = MappingProxyType(info) print('kingname 的月薪是:', safe_info['salary']) safe_info['salary'] = 0

运行效果如下图所示:

Python 中怎么创建一个只读字典

MappingProxyType像是挡在字典前面的一面盾牌,从前面是无法修改数据的,但是,如果你确实需要修改数据,那么你可以直接修改原始的字典,此时,修改会反映到  MappingProxyType 处理过的对象上面,如下图所示:

Python 中怎么创建一个只读字典

看完上述内容,你们掌握Python 中怎么创建一个只读字典的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网页标题:Python中怎么创建一个只读字典
网址分享:http://pwwzsj.com/article/gidddo.html