2010-01-14 29 views
1

我喜歡Python的空白格式和易讀性。但是,你可以,還是有一個共同/標準的方式來分隔代碼塊不縮進,即不屬於嵌套循環?作爲子項的順序步驟的Python語法和易讀性

我有一個過程的兩個部分屬於主標題。像第2步一樣,有第2.1部分和第2.2部分。

評論到目前爲止,我是這樣的:

# Section 2 
<code> 
# Section 2.1 
<code> 
# Section 2.2 
<code> 

但我寧願是這樣的:

# Section 2 
<code> 
    # Section 2.1 
    <code> 
    # Section 2.2 
    <code> 

但無論2.1也不2.2是子環,我知道這是非法的。他們只是順序運行,但是對於我來說是合乎邏輯的步驟(屬於2標題),所以當我查看我的代碼時,我知道它們是什麼程序的一部分。

編碼時你如何處理這些情況?

回答

3

函數定義有什麼問題?

def section1(...): 

def section2(...): 

def overall(...): 
    section1() 
    section2() 

如果它是如此之大以至於需要縮進,也許它太大了。

此外,您可以濫用with語句來「強制」縮進。

+0

我認爲你的意思是「你也可以濫用with語句[它有一個目的,而不是]」強制「縮進」。 – 2010-01-14 18:55:42

+0

你說得對,@jae。 – 2010-01-14 19:07:11

5

將它們放在單獨的函數中。

1

你可以試試這個分裂成多個功能:

def section2(): 
    section21() 
    section22() 

或類似的東西。我發現使用函數不僅是爲了重用,而且還在組織上使我的代碼更易讀易維護。如果這些功能需要共享大量的數據,你可以考慮讓它們成爲一個類的方法。

4

你不應該在Python中有很長的函數。以空白困境作爲暗示。

+1

s/in Python // ;-) – 2010-01-14 18:58:40

1

我在我的代碼中使用註釋來幫助我認識到它們之間的邏輯關係。如果我認爲出現了某種自然秩序,我可能會以某種方式重構我的代碼以認識到這一點,但我從不嘗試錯誤地使用Python的縮進。這不僅僅意味着什麼。它是句法而不是語義。

1

我很驚訝你會考慮像這樣縮進你的代碼,即使在允許它的語言中。你的團隊成員對此有何感想?我發現有一個與塊不對應的縮進代碼非常混亂。