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

nmi*_*els 23 python coding-style

首先,我在PEP 8中找不到答案.这并不意味着它不在那里.随意指点我.

你更喜欢哪种风格?

第一个:

if spam:
    # Do stuff.
    return eggs
else:
    # Maybe do other stuff.
    return parrots
Run Code Online (Sandbox Code Playgroud)

第二个:

if spam:
    # Do stuff.
    return eggs
# Maybe do other stuff.
return parrots
Run Code Online (Sandbox Code Playgroud)

Omi*_*gar 13

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


nmi*_*els 10

第一个!

显式优于隐式.


nmi*_*els 7

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


Raf*_*ird 6

没关系。如果您确实需要选择一个理由,请使用能最好地传达代码背后原因的理由。如果这两种情况在某种程度上相似或同等重要,则是第一个。如果您通常返回鹦鹉而鸡蛋则是第二种,这是特例。