2012-07-25 153 views
4

我想大多數人都認爲拖尾空白不是好習慣。很多編輯會爲您顯示或自動刪除它。隱藏空白空間最佳實踐

考慮這個Python的功能作爲一個簡單的例子:

Whitespace Example Screenshot

額外的空格上線11和13都是錯誤的。我想知道的是第10行。如果控制塊中的空白行不改變縮進,就會導致空白。

我使用過的大多數編輯器都會將光標保留在前一行的縮進級別,所以在沒有空白符的情況下創建一個空行需要一些額外的格式。最佳做法是什麼?第10行是否有空白?

回答

3

我會盡量回答你的問題堅持你的Python的例子,引用他們的風格指南。

PEP-8

類內部的方法定義由一個空行分離。

Wikipedia (blank line)

空白行通常是指含有零個字符(不包括端部的行的任何字符)的直線;雖然它也可以指任何行不包含任何可見的字符(包括只有空白的)。

如果您相信維基百科定義,您可能會問爲什麼零字符是首選。

對於一個很簡單的,即使自動縮進在編輯器中打開,你只是填充沒有很好的理由額外的字節文件。

其次,零字符空白行的正則表達式也比較簡單,'^ $'通常與'^ \ s * $'類似。

正如其他答案指出的那樣,在輸入空格時執行方式沒有區別。沒有充分的理由這樣做,我認爲最好的做法是放棄它,並保持簡單。你能想象一種情況:一個零字符的行將被視爲與一些空白行不同的行嗎?我不願意用那種語言編程。放入空白似乎對我來說是巴洛克式的。

5

說到代碼執行,它使得絕對零差異;我在Python中看到的最常見的做法是帶有空格的練習,但我認爲任何人都不能合理地說一個在客觀上比另一個更好。

2

由於@PinkElephantsOnParade寫道,執行沒有區別。因此,這完全是個人美學偏好的問題。

我自己設置我的編輯器顯示尾隨空白,因爲我認爲尾隨空白是一個壞主意。因此,您的第10行將突出顯示,並始終盯着我。 沒有人願意,所以我認爲第10行不應該包含空格。 (其中,巧合的是我的編輯,emacs的,怎麼會自動處理這個。)

1

對每一個他自己的,而是看它的方式是:代碼風格是關於人的可讀性。因此,如果延長線的長度超過某個先前存在的(自我強加的)限制(例如80個字符限制),則尾隨空白只是一個問題。另一方面,如果你一直在你的編輯器中顯示空格,這對你來說很重要,我個人會將它保留在那裏,因爲它會(至少對於某些人來說)更有效率地使白色 - 空間禮物;如果您決定在某一時刻在該行添加代碼,則不必添加額外的空白區域。