剛剛用比較客觀的角度說明在縮排 Python 程式時會遇到的問題,以及我們應該注意的地方。

不過,其實我還是有主觀的看法。我覺得,照我的習慣,Python 的縮排簡單得很,用不著考慮那麼多了。那就是,固定用四個空白字元進行縮排

Python 的爸爸對縮排的看法是:

Never mix tabs and spaces.

The most popular way of indenting Python is with spaces only. The second-most popular way is with tabs only. Code indented with a mixture of tabs and spaces should be converted to using spaces exclusively. When invoking the Python command line interpreter with the -t option, it issues warnings about code that illegally mixes tabs and spaces. When using -tt these warnings become errors. These options are highly recommended!

For new projects, spaces-only are strongly recommended over tabs. Most editors have features that make this easy to do.

就是說:

絕對不要把跳格和空白混在一起。

對 Python 進行縮排時,最常見的方式是僅使用空白,其次是只用跳格。把跳格和空白混在一起的程式碼,應該要把跳格轉換成空白。如果在呼叫 Python 直譯器的時候加上 -t 參數,混用跳格和空白的程式會使直譯器發出警告。如果用了 -tt 參數,則會發出錯誤。建議使用這些參數!

若進行新專案時,強烈建議採用僅用空白的縮排方式,不要用跳格。很多編輯器都具備自動轉換能力。

這同樣是在 PEP (Python Enhancement Purposal) 8 號文件裡的一段文字。

從這份文件裡我們知道,在用 Python 開發新專案的時候,用不多不少恰恰好是 4 個空白字元進行縮排,不讓程式裡出現任何跳格字元,會是最容易和別人一起合作寫 Python 的習慣。Python 標準程式庫裡大都如此縮排,其它新開發的 Python 專案也這樣縮排,所以如果我們也這樣作,我們不必費力去習慣其它人的縮排慣例,別人在看我們的程式時也可以省心。

因此,我建議剛開始學習 Python 程式設計的新手,如果還沒有養成任何縮排習慣的話,

固定用四個空白字元進行縮排

如果剛好你和我一樣是 VIM 的使用者,在你的 vimrc 檔進加入以下的 autocmd:

au BufRead *.py set ai et nu sw=4 ts=4 tw=79

這樣,會讓你開啟的所有 .py 檔 (Python 程式檔) 「自動縮排」 (ai: autoindent)、「展開跳格」 (et: expandtab)、「顯示行號」 (nu: number)、「設偏移寬度為 4」 (sw: shiftwidth)、「設跳格寬度為 4」 (ts: tabstop) 以及「設文字寬度為 79」 (tw: textwidth);在縮排上,符合 PEP8 所給的建議。

Posted by yungyuc at 17:53, 0 comment, 0 trackback.
Navigate
Add a trackback
Add a comment

Your name. (required)

Your personal website. (optional)

Your email address. Will not show in page. (suggested, but optional)

Text format is "Plain Text".

Enter "CffwH"
© hover year to navigate month: powered by django