欢迎来到思维库

思维库

在 Python 中如何快速创建一个只读字典?

时间:2025-11-05 03:13:58 出处:应用开发阅读(143)

不少人喜欢在 Python 项目中,中何使用字典来存放各种数据。快速虽然这不是创建一个好习惯,但是读字典对于少量数据来说,用字典无疑是中何最简单方便的做法。但前提是快速,不要一不小心把字典里面的创建值给覆盖了。

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

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自带了这个功能,就是types.MappingProxyType。使用它,可以轻易实现一个不能修改的字典:

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

运行效果如下图所示:

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

这样,你在处理数据时,进可攻,退可守,让可信任的代码修改数据,防止不信任的代码修改数据,一举两得。

分享到:

温馨提示:以上内容和图片整理于网络,仅供参考,希望对您有帮助!如有侵权行为请联系删除!

友情链接: