剛剛用比較客觀的角度說明在縮排 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 所給的建議。
- Previous: Python 的縮排 (注意事項) @2007/06/08
- Next: hg.bat @2007/06/14
Please send trackback to: http://blog.seety.org/everydaywork/2007/6/8/684/trackback/.