在Python中,我应该在if块中返回后使用else吗?

时间:2011-02-17 19:59:16

标签: python coding-style

首先,我在PEP 8找不到答案。这并不意味着它不在那里。请随意指出我。

您更喜欢哪种风格?

第一个

if spam:
    # Do stuff.
    return eggs
else:
    # Maybe do other stuff.
    return parrots

第二个

if spam:
    # Do stuff.
    return eggs
# Maybe do other stuff.
return parrots

8 个答案:

答案 0 :(得分:12)

这取决于,如果你要返回鹦鹉,当你不归还鸡蛋时,那么第一个就更清楚了。 但如果你试图捕捉错误或类似的东西,第二个更好。

答案 1 :(得分:8)

第一个!

明确比隐含更好。

答案 2 :(得分:7)

第二个!越少越好,越多越好。

答案 3 :(得分:5)

这并不重要。如果您确实需要选择一个的理由,请使用最能说明代码背后原因的那个。如果两种情况在某种程度上相似或同等重要,则第一种情况。第二个,如果你经常返回鹦鹉,但鸡蛋是一个特例。

答案 4 :(得分:5)

第二个。这同样适用于return,也适用于breakcontinue语句。 else及随之而来的压痕会引起眼睛刺激,浪费空间。

答案 5 :(得分:3)

既不!

if spam:
    # Do Stuff
    result= eggs
else:
    # Maybe do other stuff
    result= parrots
return result

答案 6 :(得分:0)

我认为这取决于“做东西”部分。 两者都可以接受。

答案 7 :(得分:-8)

我不知道python,但我知道:

return spam if eggs else parrots

编辑:我没有注意到Do stuff部分。在这种情况下,我将为每个分支创建另一个方法或函数(无论在python中调用它)。