try语句中的else子句...有什么用处
可能重复的问题:
Python中的try-else
我之前是学Java的,对Python里的else
这个部分有点搞不懂。
根据文档的解释:
它用于在try块没有抛出异常时需要执行的代码。
但是为什么不把这些代码放在try块后面呢?我感觉我好像漏掉了什么重要的东西……
3 个回答
3
这是为了那些你只想在没有发生错误的时候执行的代码。
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
这个块的外面,会发生什么呢?
20
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
进行操作,因为你知道它的赋值是成功的。如果代码只是放在 try
... except
后面,你可能根本没有 f
这个变量。