天天看點

python基礎編碼規範_Python 開發編碼規範

同時,也歡迎關注我的微信公衆号 AlwaysBeta,更多精彩内容等你來。

最近,團隊又來了幾個小夥伴,經過一段時間磨合之後,發現彼此之間還是比較默契的,但有一個很大的問題是,每個人的程式設計風格和習慣都不同,導緻現在代碼看起來非常混亂。

是以,有一個統一的開發編碼規範還是很重要的。我在網上搜尋了一些資料,在 PEP8 的基礎上,同時結合目前代碼的特點,總結出下文,分享給大家。

代碼布局

縮進

每個縮進級别采用 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.

二進制運算符前換行

例如:

# 更容易比對運算符與操作數

income = (gross_wages

+ taxable_interest

+ (dividends - qualified_dividends)

- ira_deduction

- student_loan_interest)

空行使用 1 個空行來分隔類中的方法(method)定義。

使用 2 個空行來分隔最外層的函數(function)和類(class)定義。

子產品引用

Imports 應該寫在代碼檔案的開頭,并按照下面這樣的順序引用:标準庫 imports

相關第三方 imports

本地應用/庫的特定 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'

# 三引号字元串

"""這是一個三引号字元串"""

表達式和語句中的空格

在下列情形中避免使用過多的空白:

1、方括号,圓括号和花括号之後:

# 正确的例子:

spam(ham[1], {eggs: 2})

# 錯誤的例子:

spam( ham[ 1 ], { eggs: 2 } )

2、逗号,分号或冒号之前:

# 正确的例子:

if x == 4: print x, y; x, y = y, x

# 錯誤的例子:

if x == 4 : print x , y ; x , y = y , x

3、切片操作

# 正确的例子:

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]

4、指派

# 正确的例子:

x = 1

y = 2

long_variable = 3

# 錯誤的例子:

x = 1

y = 2

long_variable = 3

還有一點需要注意的是,一定要把行尾的空格删掉。

注釋

對代碼進行必要的注釋,如果修改代碼,還要修改對應的注釋内容。

删除無用的注釋内容,增加代碼可讀性。

塊注釋

要使用塊注釋,禁止使用行内注釋,注釋時,# 和後面的注釋内容要有空格。

例如:

# 這是一個注釋

x = 1 + 1

不要使用下面的注釋方式:

x = 1 + 1 # 這是一個注釋

TODO 注釋

主要包含以下三點内容:開頭包含「TODO」字元串

緊跟着是用括号括起來的你的名字或者 email

再接下來是冒号,然後寫接下來要做内容的文字解釋

例如:

# TODO(xiaoming): 明确需求之後再開發

文檔字元串

對于公共子產品,函數,類和方法,使用文檔字元串。内容包括三個方面,分别是功能描述、參數、傳回值。

例如:

class MyClass:

"""這是一個自定義類"""

something

def func():

"""這是一個自定義函數params:params1: 第一個參數params2: 第二個參數return:{'data':{}, 'status': 200}"""

something

命名

1、檔案名

采用小寫字母和下劃線的方式。

例如:

utils.py

mail_lib.py

2、函數名

采用小寫字母和下劃線的方式。

例如:

def func():

pass

def send_mail():

pass

3、類名

采用大駝峰方式。

例如:

class MyClass:

pass

4、常量和變量:

例如:

# 常量

TOTAL

MAX_COUNT

# 變量

total

max_total

參考文章: