2011-02-17 57 views
16

首先,我在PEP 8找不到答案。這並不意味着它不在那裏。隨意指點我吧。在Python中,我應該在if塊中返回後使用else嗎?

你喜歡哪種風格?

第一個

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 
+12

@closers:我理解**主觀**,儘管我的確嘗試不**和**。但脫離主題?編碼風格的問題? – nmichaels 2011-02-17 20:48:20

+0

如果有「自行車問題」類別,我會投票結束您的問題。缺乏這一點,我覺得不得不回答:) – 2011-02-17 21:02:09

+0

如果else塊長,我個人使用第二種風格。它使代碼更平坦,更易於閱讀。 – 2012-09-29 10:21:40

回答

11

這取決於,如果你會返回鸚鵡,當你不返回雞蛋時,那麼第一個更清晰。 但是,如果你想抓住一個錯誤或類似的東西,第二個更好。

8

第一個!

顯式優於隱式。

7

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

-8

我不知道蟒蛇,但我做的:

return spam if eggs else parrots 

編輯:我沒有注意到這樣的東西的一部分。在這種情況下,我會爲每個分支創建另一個方法或函數(無論它是在python中調用的)。

3

都不!

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

這並不重要。如果您確實需要選擇一個的理由,請使用最能表達代碼背後原因的那個。如果兩種情況都有些相似或者同等重要,那麼就是第一種。第二個,如果你通常返回鸚鵡,但雞蛋是一個特殊情況。

5

第二個。這不僅適用於return,也適用於breakcontinue陳述。 else和由此引起的壓痕對眼睛有刺激性並且浪費空間。

0

我認爲這取決於「做東西」部分。 兩者都可以接受。

相關問題