可能重复:
Python try-else
来自Java背景,我不太了解else
子句有用的东西。
根据文档
对必须的代码很有用 如果try子句没有执行则执行 提出异常。
但是为什么不把代码放在try块之后呢?看来我在这里缺少一些重要的东西......
答案 0 :(得分:10)
else
子句特别有用,因为您知道try
套件中的代码是成功的。例如:
for arg in sys.argv[1:]:
try:
f = open(arg, 'r')
except IOError:
print 'cannot open', arg
else:
print arg, 'has', len(f.readlines()), 'lines'
f.close()
您可以安全地对f
执行操作,因为您知道它的分配成功了。如果代码只是在尝试之后......除外,您可能没有f
。
答案 1 :(得分:3)
考虑
try:
a = 1/0
except ZeroDivisionError:
print "Division by zero not allowed."
else:
print "In this universe, division by zero is allowed."
如果将第二个print
放在try/except/else
块之外会怎样?
答案 2 :(得分:2)
当没有引发异常时,它是您想要执行 的代码。