pep8規範 官方文檔:[https://www.python.org/dev/peps/pep-0008/](https://www.python.org/dev/peps/pep-0008/)html
PEP8中文翻譯:http://www.cnblogs.com/ajianbeyourself/p/4377933.htmlpython
1)縮進。4個空格的縮進(編輯器均可以完成此功能),不使用Tap,更不能混合使用Tap和空格。程序員
2)每行最大長度79,換行可使用反斜槓,最好使用圓括號。換行點要在操做符的後邊敲回車。api
3)類和top-level函數定義之間空兩行;類中的方法定義之間空一行;函數內邏輯無關段落之間空一行;其餘地方儘可能不要再空行。tcp
1) 模塊內容的順序:模塊說明和docstring—import—globals&constants—其餘定義。其中import部分,又按標準、三方和本身編寫順序依次排放,之間空一行。編輯器
import os import sys from tcp_server import online_user from threading import currentThread from lib import common from interface import common_interface, admin_interface, user_interface ...
2 )不要在一句import中多個庫,好比import os, sys不推薦。函數
# 正確方式 import os import sys from subprocess import Popen, PIPE # 錯誤方式 import os,sys
3) 若是採用from XX import XX引用庫,能夠省略‘module.’,都是可能出現命名衝突,這時就要採用import XX。編碼
from myclass import MyClass from foo.bar.yourclass import YourClass # 若是和本地名字有衝突: import myclass import foo.bar.yourclass
# 正確寫法 x = x + 1 # Compensate for border # 錯誤寫法 x = x + 1 # do nothing
1 )編碼中考慮到其餘python實現的效率等問題,好比運算符‘+’在CPython(Python)中效率很高,都是Jython中卻很是低,因此應該採用.join()的方式。
2) 儘量使用‘is’‘is not’取代‘==’,好比if x is not None 要優於if x。
3) 使用基於類的異常,每一個模塊或包都有本身的異常類,此異常類繼承自Exception。
4) 異常中不要使用裸露的except,except後跟具體的exceptions。
5 )異常中try的代碼儘量少。好比:spa
try: value = collection[key] except KeyError: return key_not_found(key) else: return handle_value(value) 要優於 try: return handle_value(collection[key]) except KeyError: return key_not_found(key
6 )使用startswith() and endswith()代替切片進行序列前綴或後綴的檢查。好比:翻譯
if foo.startswith('bar'):優於 if foo[:3] == 'bar':
7) 使用isinstance()比較對象的類型。好比
if isinstance(obj, int): 優於 if type(obj) is type(1):
8 )判斷序列空或不空,有以下規則
Yes: if not seq: if seq:
優於
No: if len(seq) if not len(seq)
9 )字符串不要以空格收尾。