簡明 Python 程式設計規範v2

2021-08-25 23:50:57 字數 3124 閱讀 9684

賴勇浩(

注:之前發布一篇《簡明 python 程式設計規範》(見:本是我給當時所在的公司制定的,發表到部落格的時候,對齊等問題都有一些錯誤,還包括一些錯別字。到後來,我又有做過修正。大概在 2010 年 8 年,我又由 c++ 開發轉到 python 開發,便在那之前的基礎上潤飾和完善,形成第二版。前段時間 ******-is-better.com ****了我寫的前一版本規範(見:引起大家的討論,我一一解釋不來,所以今天抽點時間把 v2 編輯一下發布上來,求交流、指正。

以下是為規範全文:

設定編輯器,預設儲存為 utf-8 格式。

this._is.a.very.long.variable_name = this._is.another.long.variable_name應改為:variable_name1 = this._is.a.very.long.variable_name variable_name2 = this._is.another.variable_name variable_name1 = variable_name2s

class edit(widget): def __init__(self, parent, width, font = font, color = black, pos = pos, style = 0): # 注意:多一層縮排 pass
或:

very_very_very_long_variable_name = edit(parent, width, font, color, pos) # 注意:多一層縮排 do_sth_with(very_very_very_long_variable_name)
very_very_very_long_variable_name = ui.widgets.edit( panrent, width, font, color, pos) # 注意:多一層縮排 do_sth_with(very_very_very_long_variable_name)

if color == white or color == black \ or color == blue: # 注意 or 操作符在新行的行首而不是舊行的行尾,上一行的續行符不可省略 do_something(color); else: do_something(default_color);
white = 0xffffffff this_is_a_constant = 1
color = white this_is_a_variable = 1

class thisisaclass(object): passs

module.py _internal_module.py

class xmlparser(object):pass
class base(object): def __init__(self, id, parent = none): self.__id__ = id self.__parent__ = parent def __message__(self, msgid): # …略
其中 __id__、__parent__ 和 __message__ 都採用了系統保留字命名法。

from module import (obj1, obj2, obj3, obj4, obj5, obj6)

a = 1 # 這是乙個行注釋 variable = 2 # 另乙個行注釋 fn = callback_function # 還是行注釋
沒有必要做這種對齊,原因有兩點:一是這種對齊會打亂程式設計時的注意力,大腦要同時處理兩件事(程式設計和對齊);二是以後閱讀和維護都很困難,因為人眼的橫向視野很窄,把三個字段看成一行很困難,而且維護時要增加乙個更長的變數名也會破壞對齊。直接這樣寫為佳:

a = 1 # 這是乙個行注釋 variable = 2 # 另乙個行注釋 fn = callback_function # 還是行注釋
if not ***: pass

for i in xrange(10): print i
都不是好**,應寫成

if not ***: pass for i in xrange(10): print i
注:本文件中出現寫成一行的例子是因為排版的原因,不得作為編碼中不斷行的依據。

if len(alist) != 0: do_something() if alist != : do_something() if s != "": do_something() if var != none: do_something() if var != false: do_something()
上面的語句應該寫成:

if seq: do_somethin() # 注意,這裡命名也更改了 if var: do_something()

簡明 Python 程式設計規範

編碼 業界普遍認同 python 的注釋分為兩種的概念,一種是由 開頭的 真正的 注釋,另一種是 docstrings。前者表明為何選擇當前實現以及這種實現的原理和難點,後者表明如何使用這個包 模組 類 函式 方法 甚至包括使用示例和單元測試。堅持適當注釋原則。對不存在技術難點的 堅持不注釋,對存在...

文章索引 Socket程式設計 V2

文章索引 socket 網路程式設計資料收集 v1 如何設定connect超時時間 windows 如何設定connect超時時間 linux socket程式設計中檢測埠是否被占用 注意 tcp的埠和udp的埠是互不相干的。同一埠如何區分不同的socket 注意 accept產生的socket共用...

八皇后問題v2

include stdio.h note 該程式是乙個解n皇后棋局問題的演算法 採用遞迴解決 編譯環境 vc 6 程式隨n值的改變,從而來解決n皇后問題 define n 4int solution n sols 放置皇后到位置 row,col 若成功返回1,失敗返回0 int place intr...