Python 试着为初学者简化
有没有一种方法可以简化代码流程,使Python 试着为初学者简化,python,Python,有没有一种方法可以简化代码流程,使busy=0和print busy不必出现两次 busy = 1 try: print 1/0 busy = 0 print busy except: busy = 0 print busy raise 好的,您可以将公共代码放在finally块中的try-catch块之后,如下所示: busy = 1 try: print 1/0 except: raise finally :
busy=0
和print busy
不必出现两次
busy = 1
try:
print 1/0
busy = 0
print busy
except:
busy = 0
print busy
raise
好的,您可以将公共代码放在
finally
块中的try-catch块之后,如下所示:
busy = 1
try:
print 1/0
except:
raise
finally :
busy = 0
print busy
当您想设置busy=0
和print busy
而不考虑try catch
,您只需将公共代码放在try catch
内部finally
之外,最终将执行该代码
您可以参考以了解更多信息。您可以将其放在
finally
子句中:
try:
print 1/0
except:
raise
finally:
busy = 0
print busy
但是正如@Ryan在评论中提到的,现在在子句中有一些无用的代码,除了:
之外。所以你可以做:
try:
print 1/0
finally:
busy = 0
print busy
使用
finally
子句或在块中使用函数,但
除外
busy = 1
def final(busy):
print busy
return busy
try:
print 1/0
except:
busy = final(0) #sets busy to 0
如果抛出异常,
print busy
。busy
建议您可能希望使用finally:
?我认为重点是只使用finally
(因此重新播放),所以除了:
就可以了。好吧,很有趣。我没有遇到过被认为正常的情况,除了:
。将更新帖子。谢谢。(但是现在你可以完全删除它,因为最后有一个
)@Ryan:那么这个异常就不会被捕获了。请你进一步解释一下这个问题好吗?谢谢。except:raise
的要点是不捕获异常(这就是为什么首先捕获所有异常是好的:它们会被重新引发)。