【发布时间】:2017-10-21 04:04:55
【问题描述】:
考虑下面的例子,
myList = [1, 2, 3, 4, 5, 6]
要打印最后一个索引,
# Non - pythonic
if len(myList) >= 6:
print(myList[5])
else:
print('Index does not exist')
# Pythonic
try:
print(myList[5])
except:
print('Index does not exist')
请求宽恕而不是获得许可背后的想法是什么?
【问题讨论】:
-
一般来说,有很多方法可以让 LBYL 方法(在你跳跃之前查看)错误,并且该技术甚至会导致竞争条件。 stackoverflow.com/questions/9748678/…
-
您还需要考虑到某些情况下您无法知道您正在尝试的成功的先决条件(并且该先决条件甚至可能在测试和尝试之间变得无效)。因此,使用异常被认为更符合 Python 风格(但不是单纯的异常),因此有机会处理它的东西可以看到并可能处理它。
标签: python