1 python optimization redundancy
我正在学习如何编写最优化和可读的代码。我写的第一种方法有多余的 for 循环,但只检查一次驱逐策略。虽然我的第二种方法没有多余的 for 循环,但每次迭代都会检查驱逐策略。有更好的方法来编写这段代码吗?
if self.remainingSpace - content.size < 0:
if evictionPolicy == 'lru':
while self.remainingSpace - content.size < 0:
self.lruEvict()
else:
while self.remainingSpace - content.size < 0:
self.mruEvict()
Run Code Online (Sandbox Code Playgroud)
或者
if self.remainingSpace - content.size < 0:
while self.remainingSpace - content.size < 0:
if evictionPolicy == 'lru':
self.lruEvict()
else:
self.mruEvict()
Run Code Online (Sandbox Code Playgroud)
最简单且最快的版本。由于evictionPolicy永远不会改变,因此请预先选择方法,将其放入通用名称中,然后使用单个通用循环:
evict = self.lruEvict if evictionPolicy == 'lru' else self.mruEvict
while self.remainingSpace - content.size < 0: # As noted on the other answer, self.remainingSpace < content.size would be slightly more efficient
evict()
Run Code Online (Sandbox Code Playgroud)
无需重复代码,无需运行时重复检查每个循环上调用哪个方法。
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |