技術博客: github.com/yongxinz/te…python
同時,也歡迎關注個人微信公衆號 AlwaysBeta,更多精彩內容等你來。 git
最近,團隊又來了幾個小夥伴,通過一段時間磨合以後,發現彼此之間仍是比較默契的,但有一個很大的問題是,每一個人的編程風格和習慣都不一樣,致使如今代碼看起來很是混亂。因此,有一個統一的開發編碼規範仍是很重要的。我在網上搜索了一些資料,在 PEP8 的基礎上,同時結合目前代碼的特色,總結出下文,分享給你們。github
每一個縮進級別採用 4 個空格,注意不是 Tab。編程
當一行超出單行最大長度時,採用 Python 隱式續行,即垂直對齊於圓括號、方括號和花括號。瀏覽器
例如:微信
# 調用函數
foo = long_function_name(var_one, var_two,
var_three, var_four)
# 定義列表
my_list = [
1, 2, 3,
4, 5, 6,
]
# 定義字典
my_dict = {
'a': 'hello',
'b': 'world'
}
複製代碼
傳統來講一直都是 80,但我以爲以如今的瀏覽器屏寬來講,設置 120 都沒問題,我設置的是 120.ide
例如:函數
# 更容易匹配運算符與操做數
income = (gross_wages
+ taxable_interest
+ (dividends - qualified_dividends)
- ira_deduction
- student_loan_interest)
複製代碼
Imports 應該寫在代碼文件的開頭,並按照下面這樣的順序引用:佈局
禁止使用 import *
這樣的方式。編碼
模塊中的「雙下滑線」變量,好比 __all__
,__author__
,__version__
等,直接寫在文件開頭。
例如:
""" This is the example module. This module does stuff. """
from __future__ import barry_as_FLUFL
__all__ = ['a', 'b', 'c']
__version__ = '0.1'
__author__ = 'Cardinal Biggles'
import os
import sys
複製代碼
使用單引號來表示字符串,對於三引號字符串,使用雙引號字符表示。
例如:
# 單引號字符串
a = 'hello'
# 三引號字符串
""" 這是一個三引號字符串 """
複製代碼
在下列情形中避免使用過多的空白:
一、方括號,圓括號和花括號以後:
# 正確的例子:
spam(ham[1], {eggs: 2})
# 錯誤的例子:
spam( ham[ 1 ], { eggs: 2 } )
複製代碼
二、逗號,分號或冒號以前:
# 正確的例子:
if x == 4: print x, y; x, y = y, x
# 錯誤的例子:
if x == 4 : print x , y ; x , y = y , x
複製代碼
三、切片操做
# 正確的例子:
ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:]
ham[lower:upper], ham[lower:upper:], ham[lower::step]
ham[lower+offset : upper+offset]
ham[: upper_fn(x) : step_fn(x)], ham[:: step_fn(x)]
ham[lower + offset : upper + offset]
# 錯誤的例子:
ham[lower + offset:upper + offset]
ham[1: 9], ham[1 :9], ham[1:9 :3]
ham[lower : : upper]
ham[ : upper]
複製代碼
四、賦值
# 正確的例子:
x = 1
y = 2
long_variable = 3
# 錯誤的例子:
x = 1
y = 2
long_variable = 3
複製代碼
還有一點須要注意的是,必定要把行尾的空格刪掉。
對代碼進行必要的註釋,若是修改代碼,還要修改對應的註釋內容。
刪除無用的註釋內容,增長代碼可讀性。
要使用塊註釋,禁止使用行內註釋,註釋時,#
和後面的註釋內容要有空格。
例如:
# 這是一個註釋
x = 1 + 1
複製代碼
不要使用下面的註釋方式:
x = 1 + 1 # 這是一個註釋
複製代碼
主要包含如下三點內容:
例如:
# TODO(xiaoming): 明確需求以後再開發
複製代碼
對於公共模塊,函數,類和方法,使用文檔字符串。內容包括三個方面,分別是功能描述、參數、返回值。
例如:
class MyClass:
""" 這是一個自定義類 """
something
def func():
""" 這是一個自定義函數 params: params1: 第一個參數 params2: 第二個參數 return: {'data': {}, 'status': 200} """
something
複製代碼
一、文件名
採用小寫字母和下劃線的方式。
例如:
utils.py
mail_lib.py
複製代碼
二、函數名
採用小寫字母和下劃線的方式。
例如:
def func():
pass
def send_mail():
pass
複製代碼
三、類名
採用大駝峯方式。
例如:
class MyClass:
pass
複製代碼
四、常量和變量:
例如:
# 常量
TOTAL
MAX_COUNT
# 變量
total
max_total
複製代碼
參考文章: