Python編程規(guī)范

排版

  • 縮進統(tǒng)一使用四個空格編寫。
  • 文件中必須使用UTF-8編碼重慢。
  • 一行只寫一條語句(包括加載模塊時今阳,必須每個模塊獨占一行)师溅。
  • 相對獨立的程序塊之間、以及變量說明之后盾舌,必須添加空行墓臭。
  • 一行長度小于80個字符。
  • 操作符前后添加空格(有特殊情況)妖谴。
  • 模塊加載順序(標準庫窿锉、第三方關聯(lián)庫、本地特定庫、程序)榆综,并在這幾組導入語句之間添加空行妙痹。
  • 避免“from ××× import * ”的導入方式,采用“from ××× import yyy”鼻疮。
  • 文件頭使用“#!/usr/bin/env python”指定解釋器怯伊。

注釋

  • 類和接口的注釋寫在類聲明的下一行,并向后縮進四個空格判沟。內(nèi)容包括:功能描述需描述類和接口功能耿芹,并寫明和其他類或接口之間的關系;屬性清單列出該類或接口的接口方法的描述挪哄;修改記錄包括修改人吧秕,修改日期和修改內(nèi)容。
class Testclass():
    """
    功能描述:
    屬性清單:
    修改記錄:
    """
  • 公共函數(shù)的注釋寫在類聲明的下一行迹炼,并向后縮進四個空格砸彬。內(nèi)容包括:功能描述、輸入?yún)?shù)斯入、輸出參數(shù)砂碉、返回值、調(diào)用關系刻两、異常描述增蹭、修改記錄
def test_fun():
    """
    功能描述:
    輸入?yún)?shù):
    輸出參數(shù):
    ……
    """
  • 公共屬性的注釋寫在屬性聲明的上方磅摹,與聲明保持同樣的縮進滋迈。
#Compensate for border
x = x + 1
  • 模塊注釋寫在import之前,不需要縮進户誓。
"""
功 能:XXX類饼灿,該類主要涉及XXX功能
版權信息:XXX公司,版本所有(C) 2010-2017
修改記錄:2015-3-17 12:00 XXX XXXXXXXX 創(chuàng)建
2017-3-17 12:00 XXX XXXXXXXX 修改 XXX
"""
  • 文檔字符串多余一行時帝美,末尾的"""要自成一行碍彭。
  • 注釋必須與其描述的代碼保持同樣的縮進,且位于代碼上方证舟。
  • 全局變量應該有詳細的注釋說明硕旗。

命名

  • 包和模塊名使用意義完整的英文描述,風格為小寫單詞加下劃線的組合女责。
  • 類名使用意義完成的英文描述漆枚,風格為大寫字母開頭的單詞。
  • 函數(shù)抵知、方法墙基、函數(shù)參數(shù)使用意義完整的英文描述软族,風格為小寫單詞加下劃線的組合。
  • 變量使用小寫加下劃線的風格命名残制。常量使用大寫加下劃線的風格命名立砸。
  • 類或?qū)ο蟮乃接谐蓡T使用單下劃線開頭;對于需要被繼承的基類成員初茶,如果想要防止與派生類成員重名颗祝,可用雙下劃線開頭。

編碼

  • 與None比較時采用“is”或“is not”恼布。
  • 在模塊中定義all螺戳,將允許外部訪問的變量、函數(shù)折汞、類名放進去倔幼。
__all__ = ["sample_external_function"]

def sample_external_function():
    print("This is an external function..")

def sample_internal_function():
    print("This is an internal function..")

  • 避免不同對象使用同一命名。
  • 類中的方法根據(jù)具體場景選擇使用@staticmethod或者@classmethod進行修飾爽待。一般的類方法要接收一個self參數(shù)表示此類的實例损同,但有些方法不需要訪問實例,這時分為兩種情況: 1鸟款、方法不需要訪問任何成員膏燃,或者只需要顯式訪問這個類自己的成員。這樣的方法不需要額外參數(shù)欠雌,應當用@staticmethod裝飾蹄梢;2疙筹、方法不需要訪問實例的成員富俄,但需要訪問基類或派生類的成員。這時應當用@classmethod裝飾而咆。
  • 避免在無關變量或無關概念之間重用名字霍比。

異常處理

  • try...except...結構對代碼作保護時,需在異常后使用finally...結構確保釋放操作對象暴备。
  • 不要使用except語句來捕獲所有異常悠瞬,每次只捕獲一種異常。
  • 不在except分支里面的raise都必須帶異常涯捻。
  • 禁止使用except X浅妆,x語法,應該使用except X as x障癌。
  • assert語句只能使用在測試代碼中凌外,禁止在生產(chǎn)版本中包含assert功能。

編程實踐

  • 函數(shù)參數(shù)中的可變參數(shù)涛浙,不要使用默認值康辑,在定義時使用None摄欲。
  • 對子類繼承的變量要做顯式定義和賦初值。
  • 嚴禁使用注釋行等形式僅使功能失效疮薇,不用的功能必須徹底刪除胸墙。
  • 使用os.path庫中的方法代替字符串拼接來完成文件系統(tǒng)路徑的操作。
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末按咒,一起剝皮案震驚了整個濱河市迟隅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌励七,老刑警劉巖玻淑,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異呀伙,居然都是意外死亡补履,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門剿另,熙熙樓的掌柜王于貴愁眉苦臉地迎上來箫锤,“玉大人,你說我怎么就攤上這事雨女⊙柙埽” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵氛堕,是天一觀的道長馏臭。 經(jīng)常有香客問我,道長讼稚,這世上最難降的妖魔是什么括儒? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮锐想,結果婚禮上帮寻,老公的妹妹穿的比我還像新娘。我一直安慰自己赠摇,他們只是感情好固逗,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著藕帜,像睡著了一般烫罩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上洽故,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天贝攒,我揣著相機與錄音,去河邊找鬼收津。 笑死饿这,一個胖子當著我的面吹牛浊伙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播长捧,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼嚣鄙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了串结?” 一聲冷哼從身側響起哑子,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎肌割,沒想到半個月后卧蜓,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡把敞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年弥奸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奋早。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡盛霎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出耽装,到底是詐尸還是另有隱情愤炸,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布掉奄,位于F島的核電站规个,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏姓建。R本人自食惡果不足惜诞仓,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望引瀑。 院中可真熱鬧狂芋,春花似錦榨馁、人聲如沸憨栽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屑柔。三九已至,卻和暖如春珍剑,著一層夾襖步出監(jiān)牢的瞬間掸宛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工招拙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留唧瘾,地道東北人措译。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像饰序,于是被迫代替她去往敵國和親领虹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容