Python最簡編碼規範

來源:互聯網
上載者:User

標籤:import   不一致   exception   一起   not   strong   method   單詞   特定   

0、前言

本文是閱讀《Python Coding Rule》之後總結的最為精華及簡單的編碼規範,根據每個人不同喜好有些地方會有不同的選擇,我只是做了對自己來說最簡單易行的選擇,僅供大家參考。

1、重要原則

a.保持風格的一致性很重要,但最重要的是:知道何時不一致
b.打破一條既定規則的兩個好理由:
c.當應用規則會導致代碼可讀性下降(可讀性賽高)
d.為了和周圍代碼保持一致而打破規則(曆史遺留)

2、最簡規範

a.只使用空格縮排
b.使用UTF-8編碼
c.每行唯寫一條語句
d.使用行末反斜線摺疊長行,限制每行最大79字元
e.匯入包:每行唯一、從大到小、絕對路徑
f.類內方法空1行分隔,類外空2行分隔
g.運算子除 * 外,兩邊空1格分隔,函數參數=周圍不用空格
h.除類名使用駝峰法以外,其他模組、函數、方法、變數均使用全小寫+底線
i.1個前置底線表示半公開,2個前置底線表示私人,與保留字區分使用單個後置底線
j.開發時使用中文注釋,發布時再寫英文文檔

3、詳細規範

a.全文通用
b.只使用空格縮排,4個空格表示1個縮排層次
c.每行長度限制在79字元內,使用行末反斜線摺疊長行
d.使用UTF-8編碼
e.每行唯寫一條語句

4、代碼命名

一行只import一個包,Imports的順序為:標準庫、相關主包、特定應用,每組匯入之間放置1行空行,所有匯入使用包的絕對路徑。

分割頂層函數和類的定義使用2行空行,分割類內方法定義使用1行空行,class行與第一個方法定義之間要有1行空行。

整體使用英文書寫方式來使用空格,即僅在逗號、分號後面添加1個空格,其他任何符號如圓括弧、方括弧、花括弧等都不用空格把符號與字元分開,寫在一起表示一個整體;運算子除 * 號以外,其他符號兩邊都各用1個空格分隔;函數參數=號周圍不用空格。

模組名:不含底線、簡短、全小寫;

類名、異常名:首字母大寫單詞串的駝峰法;

函數名、全域變數名、方法名、執行個體變數:全小寫,加底線增加可讀性;

一個前置底線僅用於不想被匯入的全域變數(還有內建函式和類)前加一個底線)、不打算作為類的公用介面的內部方法和執行個體變數;

兩個前置底線以表示類私人的名字,只用來避免與類(為可以子類化所設計)中的屬性發生名字衝突。

私人屬性必須有兩個前置底線,無後置底線;

非公有屬性必須有一個前置底線,無後置底線。

公用屬性沒有前置和後置底線,除非它們與保留字衝突,此情況下,單個後置底線比前置或混亂的拼字要好,例如:class_優於klass。

5、編寫技巧

與None之類的單值比較,永遠用:‘is‘或‘is not‘來做:if x is not None

在模組和包內定義基異常類(base exception class)

使用字串方法(methods)代替字串模組。

在檢查首碼或尾碼時避免對字串進行切片,用startswith()和endswith()代替,如:No: if foo[:3] == ‘bar‘:Yes: if foo.startswith(‘bar‘):

只用isinstance()進行物件類型的比較,如:No: if type(obj) is type(1):Yes: if isinstance(obj, int)

判斷True或False不要用 ==,如:No: if greeting == True:Yes: if greeting:

6、注釋

開發時,注釋全部用中文來寫,當要發布指令碼工具時,再寫英文文檔。

注釋應該是是完整的句子(短語也可),首字母大寫;如果注釋很短,省略末尾句號;註解區塊由一個or多個完整句子構成的段落組成,則每個句子使用句子結尾;句末句號後使用兩個空格。

註解區塊每行以#和一個空格開始,並且跟隨注釋的代碼具有相同的縮排層次,註解區塊上下方有一空行包圍。

謹慎使用行內注釋,至少使用兩個空格與語句分開。

使用 pydoc; epydoc; Doxgen 等文檔化工具,為所有公用模組、函數、類和方法邊寫文檔字串,文檔字串對非公開的方法不是必要的,但你應該有一個描述這個方法做什麼的注釋,這個注釋應該在"def"這行後。

多行文檔字串結尾的""" 應該單獨成行。

版本註記:定義一個變數__version__ = "$Revision: 1.4 $"

Stay hungry. Stay foolish.

看完以上的內容,相信你對於Python的瞭解又加深了一層。作為一名Python愛好者,如果你在學習中遇到了困惑需要交流,可以來我們的網站(http://www.magedu.com/)擷取協助,瞭解行業評價最高的Linux課程可以撥打到電話:18519746220。

Python最簡編碼規範

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.