打破一條既定規則的兩個理由: 應用這個規則將導致代碼可讀性下降。 為了和周圍的代碼保持一致。 編碼: 所有的 Python 腳本文件都應在文件頭標上如下標識或其相容格式的標識: # -*- coding:utf-8 -*- 設置編輯器,預設保存為utf-8格式。 縮進: 永遠不要混用製表符和空格。
打破一條既定規則的兩個理由:
- 應用這個規則將導致代碼可讀性下降。
- 為了和周圍的代碼保持一致。
編碼:
- 所有的 Python 腳本文件都應在文件頭標上如下標識或其相容格式的標識:
# -*- coding:utf-8 -*-
- 設置編輯器,預設保存為utf-8格式。
縮進:
- 永遠不要混用製表符和空格。
- 最流行的Python縮進方式是僅使用空格,其次是僅使用製表符。
- 使用空格縮進時預設設置為4個空格。
斷行:
- 行的最大長度不得超過79字元。
- 對順序排放的大塊文本(文檔字元串或註釋),推薦將長度限制在72字元。
- 摺疊長行的首選方式是使用 Python 支持的圓括弧,方括弧和花括弧內的行延續。
- 可以使用反斜杠來斷行,斷行的位置應在操作符前,且換行後多一個縮進。
空行:
- 對函數和類用兩個空行分隔,對類的方法用一個空行分隔。
- 在import不同種類的模塊之間增加空行。
導入:
- 一條import語句import一個模塊。
- 最好不要使用from moudle import *。
- Imports 通常被放置在文件的頂部。僅在模塊註釋和文檔字元串之後,模塊的全局變數和常量之前。
- import 的次序,先 import Python 的內置模塊,再 import 第三方模塊,最後 import 自己開發的項目中的其它模塊。
空格:
- 在二元算術符、邏輯運算符前後加空格。
- 括弧(含圓括弧、方括弧和花括弧)前後不加空格。
- 逗號、冒號、分號前面不加空格,後面加一個空格(冒號在行尾後面不用加空格)。
- 等號用於指定參數或預設參數值時,兩邊不要加空格。
命名:
- 永遠不要用小寫字母 l ,大寫字母 O ,大寫字母 I 作為單字元的變數名。
- 常量名所有字母大寫,用下劃線連接各個單詞。
- 變數名和函數名所有字母小寫,用下劃線連接各個單詞。且變數名不應帶有類型信息。
- 模塊名和包名所有字母小寫,簡短且不含下劃線。
- 類名使用首字母大寫的單詞串,不含下劃線。
分枝和迴圈:
- 不要將多條語句寫在同一行上。
- 多使用迴圈語句的 else 分句,以簡化代碼。
註釋:
- 註釋分為兩種,一種是由 # 開頭的“真正的”註釋,另一種是文檔字元串。前者表明為何選擇當前實現以及這種實現的原理和難點,後者表明如何使用這個包、模塊、類、函數(方法),甚至包括使用示例和單元測試。
- 堅持適當註釋原則。對不存在技術難點的代碼堅持不註釋,對存在技術難點的代碼必須註釋。當代碼修改時,應始終優先更新註釋。
- 註釋應該是完整的句子,每個句子以句號結尾。如果註釋很短,則省略末尾的句號。
- 如果註釋是一個短語或句子,首字母應該大寫,除非它是一個以小寫字母開頭的標識符。
- 註釋塊應具有與代碼相同的縮進層次。註釋塊中每行以’#’和一個空格開始(除非他是註釋內的縮進文本)。註釋塊內的段落以僅含單個’#’的行分割。 註釋塊上下方最好有一空行包圍。
- 行內註釋應該至少用兩個空格和語句分開,它們應該以’#’和單個空格開始。
文檔字元串:
- 為所有公共模塊、函數、類和方法編寫文檔字元串。文檔字元串對非公開的方法不是必要的,但需要有一個描述這個方法做什麼的註釋,這個註釋應該在”def”這行後。
- 多行文檔字元串結尾的””” 應該單獨成行。
其他:
- 對象類型的比較應該始終用isinstance()代替直接比較類型。
if isinstance(obj, int):
- 不要用 “==” 比較布爾型的值以確定是True或False,如:
if greeting == True:
應該寫成:
if greeting: