团队编程项目代码设计规范(爬取豆瓣电影top250)
生活随笔
收集整理的這篇文章主要介紹了
团队编程项目代码设计规范(爬取豆瓣电影top250)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
基本格式
縮進
使用4個空格進行縮進
行寬
每行代碼盡量不超過80個字符
理由:
- 這在查看side-by-side的diff時很有幫助
- 方便在控制臺下查看代碼
- 太長可能是設(shè)計有缺陷
換行
Python支持括號內(nèi)的換行。這時有兩種情況。
使用反斜杠\換行,二元運算符+?.等應出現(xiàn)在行首,并與上一行的.或=對齊;或者縮進4個空格。長字符串也可以用此法換行
foo = variable_with_long_name \+ another_variable \+ variablesession.query(MyTable) \.filter_by(id=1) \ .one() this_is_a_very_long(function_call, 'with many parameters') \ .that_returns_an_object_with_an_attribute print 'Hello, ' \ '%s %s!' % \ ('Harry', 'Potter')多個元素的list或者tuple,在起始括號后換行,第二行縮進4個空格
items = ['this is the first', 'set of items', 'with more items', 'to come in this line', 'like this' ]禁止復合語句,即一行中包含多個語句:
# yes do_first() do_second() do_third()# no do_first();do_second();do_third();if/for/while一定要換行:
# yes if foo == 'blah': do_blah_thing() # no if foo == 'blah': do_blash_thing()空行
- 模塊級函數(shù)和類定義之間空兩行;
- 類成員函數(shù)之間空一行;
- 不要使用太多的連續(xù)空行來區(qū)分代碼的邏輯塊
- 可以使用多個空行分隔多組相關(guān)的函數(shù)
- 函數(shù)中可以使用空行分隔出邏輯相關(guān)的代碼
表達式
空格
- 一元運算符不加空格
- 在二元運算符兩邊各空一格[=,-,+=,==,>,in,is not, and]:
- 函數(shù)的參數(shù)列表中,,之后要有空格
- 函數(shù)的參數(shù)列表中,默認值等號兩邊不要添加空格
- 左括號之后,右括號之前不要加多余的空格
- 字典、列表對象的左括號之前不要多余的空格
- 不要為對齊賦值語句而使用的額外空格
比較
- 使用變量在左,常量在右
- 不顯示進行對True、False的比較
- 否定比較采用,foo not in bar的形式,而不是not foo in bar
- 使用instance(a, C)進行實例的類型檢查,而不是type(A) is C
引號
簡單說,自然語言使用雙引號,機器標示使用單引號,因此?代碼里?多數(shù)應該使用?單引號
- 自然語言?使用雙引號?"..."
例如錯誤信息;很多情況還是unicode,使用u"你好世界" - 機器標識?使用單引號?'...'?例如dict里的key
- 正則表達式?使用原生的雙引號?r"..."
- 文檔字符?使用三個雙引號?"""......"""
import語句
- import語句應該分行書寫
- import語句應該使用?absolute?import
- import語句應該放在文件頭部,置于模塊說明及docstring之后,于全局變量之前;
- import語句應該按照順序排列,每組之間用空行分隔
- 導入其他模塊的類定義時,可以使用相對導入
- 如果發(fā)生命名沖突,則可使用命名空間
注釋
塊注釋
#號后空一格,段落間用空行分開(同樣需要#號)
# 塊注釋 # 塊注釋 # # 塊注釋 # 塊注釋行注釋
至少使用兩個空格和語句分開,使用有意義的注釋
# yes x = x + 1 # 邊框加粗一個像素 # no x = x + 1 # x加1docstring
docstring的規(guī)范在?PEP 257?中有詳細描述,其中最其本的兩點:
命名規(guī)范
- 應避免使用小寫字母l(L),大寫字母O(o)或I(i)單獨作為一個變量的名稱,以區(qū)分數(shù)字1和0
- 包和模塊使用全小寫命名,盡量不要使用下劃線
- 類名使用CamelCase命名風格,內(nèi)部類可用一個下劃線開頭;
約定的縮寫保留原樣,例如使用HTTPWriter而不是HttpWriter - 函數(shù)使用下劃線分隔的小寫命名,lowercase_with_underscores
- 當參數(shù)名稱和Python保留字沖突,可在最后添加一個下劃線,盡量不是使用縮寫或自造的詞
- 常量使用以下劃線分隔的大寫命名,UPPERCASE_WITH_UNDERSCORES
- Precompiled regular expressions:?name_re
Function and method arguments:
- Class methods:?cls?as first parameter.
- Instance methods:?self?as first parameter.
- Lambdas for properties may have the first parameter replaced with?x, as in?display_name = property(lambda x: x.real_name or x.username).
編碼
- 文件使用UTF-8編碼
- 文件頭部加入#-*-coding:utf-8-*-標識
轉(zhuǎn)載于:https://www.cnblogs.com/nullblogs/p/7612883.html
總結(jié)
以上是生活随笔為你收集整理的团队编程项目代码设计规范(爬取豆瓣电影top250)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用PS把多张psd格式的图片转换为一张
- 下一篇: Dropbox Folder Sync