Python try-except-else语句的用例
如果Python try-except-else语句的用例,python,django,try-except,Python,Django,Try Except,如果except子句中有return指令,那么使用else子句有什么意义 def foo(): try: # Some code except: # Some code return else: # Some code 我问这个问题是因为Django文档在vote()。考虑到except子句中的return指令无论如何都会停止函数的执行,为什么他们使用else子句来隔离只有在未引发异常时才应执行的代码?他们
except
子句中有return
指令,那么使用else
子句有什么意义
def foo():
try:
# Some code
except:
# Some code
return
else:
# Some code
我问这个问题是因为Django文档在
vote()。考虑到except
子句中的return
指令无论如何都会停止函数的执行,为什么他们使用else
子句来隔离只有在未引发异常时才应执行的代码?他们可以完全省略else
子句。如果try:
套件中没有异常,则执行else:
套件。换句话说,只有当存在实际异常时,才会使用except:
suite和return
语句
在我看来,return
语句在这里是多余的;通过就足够了。我会使用else:
suite到try
当有额外的代码时,只有在没有引发异常的情况下才应该执行,但可能引发不应该捕获的异常本身
您是对的,except
子句中的return
使得对该段代码使用else:
有些多余。整个套件可能会凹陷,而else:
行可能会被删除:
从文档中:
使用else子句比向try子句添加其他代码要好,因为它可以避免意外捕获由try保护的代码未引发的异常。。。声明除外。
我认为关键是他们可以完全忽略其他。这是一种风格。@Katrielex:只有当通行证不只是说明性的时候。否则,else:pass
总是多余的,不管上下文如何。对,当然pass
是多余的。我的意思是,删除else
和删除pass
在语义上也是等效的。@Katrielex:不会,如果try
块后面有更多的代码就不会了。啊,返回的
会跳过哪个,这就是你的意思。我更新了问题。我还认为else
子句纯粹是文体上的。
def foo():
try:
# Some code
except:
# Some code
return
# Some code