如何禁止显示后续异常的父异常(原因)

如何禁止显示后续异常的父异常(原因),第1张

如何禁止显示后续异常的父异常(原因)

您在这里有一些选择

首先,奥尔普建议的更干净的版本:

try:    value = cache_dict[key]except KeyError:    try:        value = some_api.get_the_value(key)    except Exception as e:        raise e from None    cache_dict[key] = value

对于第二个选项,我假设

return value
您没有显示的地方藏有一个隐藏物:

try:    return cache_dict[key]except KeyError:    passvalue = cache_dict[key] = some_api.get_the_value(key)return value

第三种选择,LBYL:

if key not in cache_dict:    cache_dict[key] = some_api.get_the_value(key)return cache_dict[key]

对于奖励问题,请定义自己的dict子类,该子类定义

__missing__

class MyCacheDict(dict):    def __missing__(self, key):        value = self[key] = some_api.get_the_value(key)        return value

希望这可以帮助!



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5617776.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存