我是靠谱客的博主 舒适狗,这篇文章主要介绍Python中不可变的字典(映射类型)。,现在分享给大家,希望可以做个参考。

不可变映射类型

在有些场景中,比如不能用用户错误的修改某个映射,所以需要一种不可变的字典。

在Python3.3开始,types模块中新增了一个封装类MappingProxyType

给这个类一个映射,他会返回一个只读的映射视图。虽然这个视图是只读的,但是动态的,意思是如果修改了原映射对象,这个映射视图也能够改变,但是无法直接修改映射视图。

 

 

复制代码
1
from types import MappingProxyType
复制代码
1
2
3
4
5
6
a_dict = {'x': 1, 'y': 2} a_view = MappingProxyType(a_dict) print(a_view) # 打印视图,看到就是一个普通的字典 a_dict['z'] = 3 print(a_view) # 映射视图也会改变 a_view['p'] = 4 # 会报错! 因为映射视图不可修改
复制代码
1
2
3
4
5
6
7
打印 {'x': 1, 'y': 2} {'x': 1, 'y': 2, 'z': 3} Traceback (most recent call last): File "D:/PycharmProjects/hello/test2.py", line 12, in <module> a_view['p'] = 4 TypeError: 'mappingproxy' object does not support item assignment

最后

以上就是舒适狗最近收集整理的关于Python中不可变的字典(映射类型)。的全部内容,更多相关Python中不可变内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部