Python最新編程規範,新手必學

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

Python最新編程規範,新手必學

這裡還要注意:不管你是想學Python還是想找python高薪工作,記住:項目實戰永遠是核心,如果你沒有Python入門到高級實戰視頻教程,可以關注我,後臺私信我 ‘py’ 自動獲取最新python教程資料!還有老司機解答哦!

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

代碼佈局

縮進

每個縮進級別採用 4 個空格,注意不是 Tab。

當一行超出單行最大長度時,採用 Python 隱式續行,即垂直對齊於圓括號、方括號和花括號。

例如:

<code># 調用函數
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'
}
複製代碼/<code>

每行最大長度

傳統來說一直都是 80,但我覺得以現在的瀏覽器屏寬來說,設置 120 都沒問題,我設置的是 120.

二元運算符前換行

例如:

<code># 更容易匹配運算符與操作數
income = (gross_wages
+ taxable_interest
+ (dividends - qualified_dividends)
- ira_deduction
- student_loan_interest)
複製代碼/<code>

空行

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

模塊引用

Imports 應該寫在代碼文件的開頭,並按照下面這樣的順序引用:

  1. 標準庫 imports
  2. 相關第三方 imports
  3. 本地應用/庫的特定 imports

禁止使用 import * 這樣的方式。

模塊級的雙下劃線命名

模塊中的「雙下滑線」變量,比如 __all__,__author__,__version__ 等,直接寫在文件開頭。

例如:

<code>"""
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
複製代碼/<code>

字符串引用

使用單引號來表示字符串,對於三引號字符串,使用雙引號字符表示。

例如:

<code># 單引號字符串
a = 'hello'

# 三引號字符串
"""

這是一個三引號字符串
"""
複製代碼/<code>

表達式和語句中的空格

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

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

<code># 正確的例子:
spam(ham[1], {eggs: 2})

# 錯誤的例子:
spam( ham[ 1 ], { eggs: 2 } )
複製代碼/<code>

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

<code># 正確的例子:
if x == 4: print x, y; x, y = y, x

# 錯誤的例子:
if x == 4 : print x , y ; x , y = y , x
複製代碼/<code>

3、切片操作

<code># 正確的例子:
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]
複製代碼/<code>

4、賦值

<code># 正確的例子:
x = 1
y = 2
long_variable = 3

# 錯誤的例子:
x = 1
y = 2
long_variable = 3
複製代碼/<code>

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

註釋

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

刪除無用的註釋內容,增加代碼可讀性。

塊註釋

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

例如:

<code># 這是一個註釋
x = 1 + 1
複製代碼/<code>

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

<code>x = 1 + 1   # 這是一個註釋
複製代碼/<code>

TODO 註釋

主要包含以下三點內容:

  1. 開頭包含「TODO」字符串
  2. 緊跟著是用括號括起來的你的名字或者 email
  3. 再接下來是冒號,然後寫接下來要做內容的文字解釋

例如:

<code># TODO(xiaoming): 明確需求之後再開發
複製代碼/<code>

文檔字符串

對於公共模塊,函數,類和方法,使用文檔字符串。內容包括三個方面,分別是功能描述、參數、返回值。

例如:

<code>class MyClass:
"""
這是一個自定義類
"""
something

def func():
"""
這是一個自定義函數


params:
params1: 第一個參數
params2: 第二個參數

return:
{'data': {}, 'status': 200}
"""
something
複製代碼/<code>

命名

1、文件名

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

例如:

<code>utils.py

mail_lib.py
複製代碼/<code>

2、函數名

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

例如:

<code>def func():
pass

def send_mail():
pass
複製代碼/<code>

3、類名

採用大駝峰方式。

例如:

<code>class MyClass:
pass
複製代碼/<code>

4、常量和變量:

例如:

<code># 常量
TOTAL
MAX_COUNT

# 變量
total
max_total
複製代碼/<code>

最後送python教程:不管你是想學Python還是想找python高薪工作,記住:項目實戰永遠是核心,如果你沒有Python入門到高級實戰視頻教程,可以關注我,後臺私信我 ‘py’ 自動獲取最新python教程資料!還有老司機解答哦!

本文的文字及圖片來源於網絡加上自己的想法,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。


分享到:


相關文章: