【发布时间】:2021-01-12 11:01:08
【问题描述】:
我想使用一个只允许一次写入任何特定键的字典。
是否有一个(万无一失的)python 子类用于在尝试覆盖键时会引发异常的字典?
编辑:或者,是否有一种简单的方法可以抛出异常,对于任何类型的字典更新都是万无一失的?
【问题讨论】:
-
你可以继承dict并覆盖
__setitem__,也可以覆盖__delitem__、clear等
标签: python dictionary
我想使用一个只允许一次写入任何特定键的字典。
是否有一个(万无一失的)python 子类用于在尝试覆盖键时会引发异常的字典?
编辑:或者,是否有一种简单的方法可以抛出异常,对于任何类型的字典更新都是万无一失的?
【问题讨论】:
__setitem__,也可以覆盖__delitem__、clear等
标签: python dictionary
我不知道实现这一点的内置方法,但一种解决方案可能是只为字典中的每个值添加一个布尔值。初始化 dict 时,将此布尔值设置为 True,并在第一次覆盖后将其更改为 False。 每次您尝试更改某个值时,您首先检查此布尔值。 True 表示可以更改,False 表示不可以。
【讨论】: