您在这里有一些选择。
首先,奥尔普建议的更干净的版本:
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]
__missing__:
class MyCacheDict(dict): def __missing__(self, key): value = self[key] = some_api.get_the_value(key) return value
希望这可以帮助!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)