Python Dict:如何为键分配一个值,如果通过单行键访问该键,该值将引发错误?

python dict: how to assign a value to a key which will raise an error if it is accessed though the key as a one-liner?

提问人:mivkov 提问时间:8/18/2023 更新时间:8/18/2023 访问量:72

问:

我正在寻找的是定义一个字典并将初始值分配给键。此外,我想将某些键定义为错误,并且我希望在使用该键时立即引发这些错误。例如

d = {}
d["foo"] = "bar"
d["baz"] = "rat"
d["no-no"] = raise ValueError("This is a no-no") # this is invalid syntax, but should clarify what I'm looking for.

这样当有人打电话时

>>> d["foo"]
bar
>>> d["baz"]
rat
>>> d["no-no"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: This is a no-no

是否可以作为单行来做到这一点?我能想到的唯一其他解决方案是创建一个子类并覆盖 setter 函数,但我想避免这种情况,而是将其作为单行代码解决。dict

python-3.x 字典 错误处理

评论

2赞 B Remmelzwaal 8/18/2023
我认为您没有其他选择,只能创建一个子类来(有效地)实现这一点。dict
0赞 Anentropic 8/18/2023
您是否提前知道所有有效密钥,或者除了禁止的密钥和具有默认值的密钥之外,字典还需要接受任意未知密钥?
0赞 mivkov 8/18/2023
@Anentropic 我提前知道所有有效和无效的密钥。
0赞 user2390182 8/18/2023
您希望仅在访问时引发错误?
0赞 mivkov 8/18/2023
@user2390182是的,我希望仅在访问时引发错误。

答: 暂无答案