首先,我在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
答案 0 :(得分:12)
这取决于,如果你要返回鹦鹉,当你不归还鸡蛋时,那么第一个就更清楚了。 但如果你试图捕捉错误或类似的东西,第二个更好。
答案 1 :(得分:8)
第一个!
明确比隐含更好。
答案 2 :(得分:7)
第二个!越少越好,越多越好。
答案 3 :(得分:5)
这并不重要。如果您确实需要选择一个的理由,请使用最能说明代码背后原因的那个。如果两种情况在某种程度上相似或同等重要,则第一种情况。第二个,如果你经常返回鹦鹉,但鸡蛋是一个特例。
答案 4 :(得分:5)
第二个。这同样适用于return
,也适用于break
和continue
语句。 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中调用它)。