Python編碼規範,python編碼

來源:互聯網
上載者:User

Python編碼規範,python編碼

Python官方文檔: https://www.python.org/dev/peps/pep-0008/


代碼風格:

  • 使用4個空格來表示縮排,最好不使用tab,更勿將兩者混用
  • 函數間換行至少一行
  • 類之間換行至少兩行
  • 字典,列表,元祖中元素應該在逗號前添加一個空格
  • 字典中鍵後面的冒號:應在值與冒號:之間添加空格,而不是:與鍵之前間. 比如說: {‘name’:‘tom’}
  • 較長代碼(>79字元)使用\換行。換行後新行的起始處應該與前一個分隔字元對齊(是參數換行則與左括弧對齊
  • import位於module comments與docstring之後,常量聲明之前
  • 如多模組,請分開匯入. 像import os, sys是不規範的.
  • Docstring的常規寫法

   """Return foobang


   Optional plotz says to frobnicate the bizbaz first.

   """

  • Python 3.0以下版本的代碼檔案建議以latin字元編碼。3.0以上則推薦utf-8
  • 代碼中有操作符運算,請注意優先順序,優先的操作緊縮,或者加括弧
  • “=”,”==”左右兩邊加一個空格如:  if x == 1: print(‘OK’), 但在函數或方法中最好不用空格

   比如說:def func(file=’d://1.txt’)

  • 盡量不要將多行代碼放在同一行
  • 少使用行後注釋
  • 用#開頭的多行函數注釋,保持與目標函數相同的縮排
  • docstring ,開頭一行寫上返回值,接下來一行寫函數功能描述,後可按照格式>>> func(arg1, arg2, arg3) / r 返回值,以便於測試.
  • 另外,若要使用subversion,cvs等原始程式碼控制工具。可以在函數的docstring 之後,code之前寫上__version__ = "$Revision:$"


命名規則:

  • 盡量少用 'l' , 'O' , or 'I',單字母作為變數的命名.---說老實話,這樣很容易混淆,搞不清楚誰是誰!
  • 包和模組應該用短且全小寫字母:modulename
  • 類名首字母大寫的形式命名:ClassName
  • 異常類則用以Error結尾的字串命名為宜: YourError
  • 全域變數盡量只是設計用於模組內使用,並且可以用import *時,包內的__all__機制來除去全域變數
  • 函數名盡量都用小寫且單詞間以_(底線)串連,比如說:function_name(arg1, arg2, *args, **kwargs)
  • 函數和方法參數,self作為執行個體方法的第一個參數,cls作為類方法的第一個參數,倘若參數名與關鍵字相同,為了避諱,則應該加個底線
  • 方法名&類執行個體的屬性方法名規則與函數名相同,類執行個體私人屬性和類執行個體的私人方法以單個底線開頭_private_fuc_name(self)
  • 常量全大寫,多個單詞的話以底線間隔: TOTAL 或 CONSTANT_VAR
  • 物件導向設計建議:

編碼建議:

  • 無論是在哪種Python(Cython,Jython,IconPython,PyPy等),保持一致的格式。比如說,要聯合兩個字串,a = a + b, a += b,都不如用’’.join()好。
  • None前面別用==,而應該用is或者is not.
  • 用is not,而不是not is

   正確: ifa is not None:   

   錯誤: if a not isNone:   

  • 一旦涉及到__eq__ , __ne__ , __lt__ , __le__ , __gt__ , __ge__比較操作,最好6個全部實現,而不是只實現其中部分,而依賴其他函數.
  • 別用匿名函數來賦值給某個變數,而應該用def函數.

   正確: deff(x): return x*2

   錯誤: f = lambda x: x*2

  • 派生異常繼承自Exception,而不是BaseException.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.