You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python字典设置键值后,能否访问该键此前的get方法默认值?

Python字典赋值后能否获取之前get()的默认值?

原生Python字典无法直接实现这个需求,因为get(key, default)方法里的default参数只是当键不存在时临时返回的数值,字典本身不会存储这个默认值。当你后续给该键赋值后,没有任何内置机制能追溯之前使用get()时传入的默认值。

如果需要实现这个功能,你可以自定义一个字典子类,在调用get()时自动记录首次传入的默认值:

class DefaultTrackingDict(dict):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self._recorded_defaults = {}

    def get(self, key, default=None):
        # 仅当键不存在且未记录过默认值时,保存当前default
        if key not in self and key not in self._recorded_defaults:
            self._recorded_defaults[key] = default
        return super().get(key, default)

    def get_original_default(self, key):
        # 返回该键之前get()时设置的默认值,不存在则返回None
        return self._recorded_defaults.get(key)

# 测试示例
mydict = DefaultTrackingDict({'a': 1, 'b': 2})
print(mydict.get('c', 3))  # 输出 3
mydict['c'] = 10
print(mydict.get_original_default('c'))  # 输出 3

这个子类通过重写get()方法,在首次为不存在的键指定默认值时,将该值存入内部的_recorded_defaults字典。后续通过get_original_default()方法就能获取到对应键之前设置的默认值。

内容的提问来源于stack exchange,提问作者Michael C.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:50:26