在我的一个类中,我有许多方法都可以从相同的字典中获取值.但是,如果其中一个方法试图访问不存在的值,则必须调用另一个方法来使该值与该键相关联.
我目前实现如下,其中findCrackDepth(tonnage)为self.lowCrackDepth [tonnage]赋值.
if tonnage not in self.lowCrackDepth:
self.findCrackDepth(tonnage)
lcrack = self.lowCrackDepth[tonnage]
Run Code Online (Sandbox Code Playgroud)
但是,我也可以这样做
try:
lcrack = self.lowCrackDepth[tonnage]
except KeyError:
self.findCrackDepth(tonnage)
lcrack = self.lowCrackDepth[tonnage]
Run Code Online (Sandbox Code Playgroud)
我假设两者之间的性能差异与值在字典中的频率有关.这个差异有多大?我正在生成几百万个这样的值(在该类的许多实例中分布在许多字典中),并且每次该值不存在时,它可能有两次.