我的 Python 編碼規範
阿新 • • 發佈:2018-12-14
文章目錄
python 檔案的組成
為了便於描述,先上一個 demo,
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""通常這裡是關於本文件的說明(docstring),須以半形的句號、 問號或驚歎號結尾!
本行之前應當空一行,繼續完成關於本文件的說明
如果文件說明可以在一行內結束,結尾的三個雙引號不需要換行;否則,就要像下面這樣
"""
import os, time
import datetime
import math
import numpy as np
import xlrd, xlwt, xlutils
import youth_mongodb
import youth_curl
BASE_PATH = r"d:\YouthGit"
LOG_FILE = u"執行日誌.txt"
class GameRoom(object):
"""對局室"""
def __init__(self, name, limit=100, **kwds):
"""建構函式!
name 對局室名字
limit 人數上限
kwds 引數字典
"""
pass
def craete_and_start():
"""建立並啟動對局室"""
pass
if __name__ == '__main__':
# 開啟遊戲服務
start()
Linux 平臺上,一個 python 原始碼檔案應該以下部分組成。Windows 平臺上,可以省略第一項。
- 直譯器宣告
- 編碼格式宣告
- 模組註釋或文件字串
- 模組匯入
- 常量和全域性變數宣告
- 頂級定義(函式或類定義)
- 執行程式碼
編碼格式宣告
通常,編碼格式宣告是必需的。如果 python 原始碼檔案沒有宣告編碼格式,python 直譯器會預設使用 ASCII 編碼,一旦原始碼檔案包含非ASCII編碼的字元,python 直譯器就會報錯。以 UTF-8 為例,以下兩種編碼格式宣告都是合乎規則的。
# -*- coding: utf-8 -*-
# coding = utf-8
我一直 UTF-8 編碼格式,喜歡使用第一種宣告方式。
Windows 平臺上,編碼格式宣告必須位於 python 檔案的第一行。Linux 平臺上,編碼格式宣告通常位於 python 檔案的第二行,第一行是 python 直譯器的路徑宣告。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
縮排
統一使用 4 個空格進行縮排。絕對不要用tab, 也不要tab和空格混用。對於行連線的情況,我一般使用4空格的懸掛式縮排。例如:
var_dict = {
'name': 'xufive',
'mail': '[email protected]'
}
引號
- 自然語言使用雙引號
- 機器標識使用單引號
- 正則表示式使用雙引號
- 文件字串 (docstring) 使用三個雙引號
註釋
#號後空一格,段落件用空行分開(同樣需要#號):
# 塊註釋
# 塊註釋
#
# 塊註釋
# 塊註釋
行內註釋,至少使用兩個空格和語句分開:
age += 1 # 年齡增加一歲
比較重要的註釋段, 使用多個等號隔開, 可以更加醒目, 突出重要性:
server= gogame(room, options)
# =====================================
# 請勿在此處傾倒垃圾!!!
# =====================================
if __name__ == '__main__':
server.run()
空行
- 編碼格式宣告、模組匯入、常量和全域性變數宣告、頂級定義和執行程式碼之間空兩行
- 頂級定義之間空兩行,方法定義之間空一行
- 在函式或方法內部,可以在必要的地方空一行以增強節奏感,但應避免連續空行
空格
- 在二元運算子兩邊各空一格,算術操作符兩邊的空格可靈活使用,但兩側務必要保持一致
- 不要在逗號、分號、冒號前面加空格,但應該在它們後面加(除非在行尾)
- 函式的引數列表中,逗號之後要有空格
- 函式的引數列表中,預設值等號兩邊不要新增空格
- 左括號之後,右括號之前不要加新增空格
- 引數列表, 索引或切片的左括號前不應加空格
文件字串
文件字串是包、模組、類或函式裡的第一個語句。這些字串可以通過物件的__doc__成員被自動提取,並且被pydoc所用。文件字串的使用三重雙引號(""")。如果文件字串內容不能在一行內寫完,首行須以句號、 問號或驚歎號結尾,接一空行,結束的三重雙引號必須獨佔一行。
匯入模組
匯入總應該放在檔案頂部,位於模組註釋和文件字串之後,模組全域性變數和常量之前。匯入應該按照從最通用到最不通用的順序分組,分組之間空一行:
- 標準庫匯入
- 第三方庫匯入
- 應用程式指定匯入
應當避免使用以下的匯入方法:
from math import *
命名規範
- 模組儘量使用小寫命名,首字母保持小寫,儘量不要用下劃線
- 類名使用駝峰(CamelCase)命名風格,首字母大寫,私有類可用一個下劃線開頭
- 函式名一律小寫,如有多個單詞,用下劃線隔開
- 私有函式可用一個下劃線開頭
- 變數名儘量小寫, 如有多個單詞,用下劃線隔開
- 常量採用全大寫,如有多個單詞,使用下劃線隔開