文件保存爲 utf-8 格式。python
程序首行必須爲編碼聲明:# -*- coding:utf-8 -*-
編程
文件名所有小寫。api
設置用空格符替換TAB符。socket
代碼縮進爲4個空格符。函數
僅在運算符先後(如+,-,=,==)各加一個空格,不要在用於指定關鍵字參數或默認參數值的'='號周圍使用空格,其餘語句和表達式中都不要加空格。編碼
程序頭部聲明和import之間、import和程序之間用一個空行分隔。.net
類定義之間以及程序與if __name__ =="__main__":
空兩行。類定義行與成員函數之間以及函數定義之間空一行。rest
每一個語句獨立一行,不要使用;在一行內放置多條語句。code
每行字符數控制在72之內,若是超長能夠使用反斜槓(\)折行。對象
若是語句包含()、[]、{},可以使用括號內行延續,換行後加兩個縮進以便於閱讀。
換行位置應在元素分隔符或操做符前。
Lowercase(小寫)
lower_case_with_underscores(有下劃線的小寫)
UPPERCASE(大寫)
UPPER_CASE_WITH_UNDERSCORES(有下劃線的大寫)
CapitalizedWords (或 CapWords,CamelCase這樣命名是由於可從字母的大小寫分出單詞。這有時也被看成StudlyCaps。)
mixedCase (與CapitalizedWords的不一樣在於首字母小寫!)
單字符名稱僅用於計數器和迭代器。
雙下劃線開頭並結尾的名稱爲系統保留命名法,編程中禁止使用。
包名和模塊名:不含下劃線全小寫。
類名:使用CapWords約定。內部使用的類外加單下劃線前綴。
函數名和變量名:使用mixedCase約定。
常量:使用有下劃線的大寫約定。
protected變量或函數:在mixedCase約定的基礎上加單下劃線前綴。
private變量或函數:在mixedCase約定的基礎上加雙下劃線前綴。
若是命名與系統名衝突,則加單下劃線後綴。
單字符名稱, 除了計數器和迭代器。
包/模塊名中的連字符(-)。
雙下劃線開頭並結尾的名稱。
不要描述代碼自己。
功能修改後註釋必定要第一時間修改。
文檔字符串是python特有的註釋形式。一般作爲程序文件、包、模塊、類、函數的註釋方式,能夠經過對象的__doc__成員被自動提取, 而且被pydoc所用.
位置在import以前,上下各空兩行。
''' <程序名>
<功能說明>
version: <版本號>
author: <開發者姓名>
createdate:
modifydate:
'''
位置緊跟函數定義以後。
''' <功能說明>
args: <參數名> : <說明>
... ...
returns: <返回值說明>
raises: <可能引發的異常說明>
'''
在函數註釋的基礎上加入attributes(屬性)
一般用於說明程序段功能、技巧性編碼等。位置在需說明的代碼段以前。
做用同塊註釋,位置在需說明的代碼後兩個單位縮進處。
類若是不繼承自其餘類,則應顯式繼承object。
儘可能使用%格式化方法組織字符串,不要使用字串拼接。如:"%s hello!" % (userName)
儘量使用with語句處理文件或socket句柄,以確保使用完後被關閉。
儘量使用is、is not取代== 。
主程序應放在main()函數中,在程序文件的末尾經過以下形式調用。
if __name__ =='__main__': main()
PEP8 Python 編碼規範整理{:target="_blank"}
Python 編程規範{:target="_blank"}
簡明Python編程規範{:target="_blank"}