try语句中的else子句......它有什么用处

hel*_*hod 3 python exception-handling

可能重复:
Python try-else

来自Java背景,我不太了解该else条款的好处.

根据文件

如果try子句不引发异常,则必须执行的代码很有用.

但为什么不把代码放在try块之后呢?看来我在这里缺少一些重要的东西......

小智 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()
Run Code Online (Sandbox Code Playgroud)

您可以f安全地执行操作,因为您知道它的分配成功.如果代码只是在尝试之后...除外,你可能没有f.