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