天天看點

pep8 python 編碼規範_Python基礎之PEP8規範(代碼寫作規範)

文章目錄

1、縮進

2、命名約定

3、Python之禅

PEP8是Python的官方文檔中提供的代碼規範,結合這套規範,我順便整理了一下自己的寫代碼習慣。

點這裡檢視PEP8官方原文,本文隻節選了我自己比較看重的一些規範,僅供參考。

1、縮進

強制縮進的規定,讓代碼看上去很整齊,強迫症表示很喜歡。

第一種情況:代碼塊的分割

Python使用一個冒号和縮進,來分割代碼塊,代碼塊指的是類的定義、函數的定義、流程控制中if、for、while子產品。縮進表示一個代碼塊的開始,非縮進表示一個代碼的結束,相同的縮進表示在代碼塊中處于相同的級别。

每一級縮進使用一個tab鍵(四個空格)。實際上一個空格就可以,但是一個空格看起來不那麼明顯,是以用一個tab更友善、清楚。

例如下面,就是2個代碼塊(兩個代碼塊之間建議空一行)。

# 一個冒号加換行縮進,開啟一個代碼塊,直到下面一行不縮進了,說明下面一行已經不在這個代碼塊裡了

if a>b:

print(a)

def print_name(var):

print(var)

print('haha')

第二種情況:換行

有時候寫一行代碼,特别特别長的時候,就需要換行。文檔建議續行與其包裹元素對齊,譬如用括号來垂直對齊,如下。

# 換行後的括号裡内容,不超過上一行的括号

foo = long_function_name(var_one, var_two,

var_three, var_four)

2、命名約定

變量名可以是字母、數字、下劃線的組合,不能以數字開頭,也不可以用關鍵字來命名哦!

關鍵字,就是有特殊意義的字元:

import keyword

print(keyword.kwlist)

['False', 'None', 'True', 'and', 'as', 'assert', 'break', \

'class', 'continue', 'def', 'del', 'elif', 'else', 'except',\

'finally', 'for', 'from', 'global', 'if', 'import', 'in', \

'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise',\

'return', 'try', 'while', 'with', 'yield']

除此之外,還有一些其他的規範:

1)Python 裡面區分大小寫,類名一般使用首字母大寫;

2)慎用字母I(i的大寫)、l(L的小寫)、o、O,因為可能被人錯看成數字1和0;

3)命名應既簡短又具有描述性。例如,student_name比s_n好,name_length比length_of_persons_name好;

4)在運算符前後各保留一個空格,例如 n == 1;

3、Python之禅

Python 中内置了一個彩蛋,簡單明了地說明了 Python 的哲學,隻要輸入 import this,然後按下回車就能看到原文,這裡貼出中文翻譯版本:Python之禅

by Tim Peters

優美勝于醜陋

明了勝于隐晦

簡潔勝于複雜

複雜勝于混亂

扁平勝于嵌套

寬松勝于緊湊

可讀性很重要

即便是特例,也不可違背這些規則

雖然現實往往不那麼完美

但是不應該放過任何異常

除非你确定需要如此

如果存在多種可能,不要猜測

肯定有一種——通常也是唯一一種——最佳的解決方案

雖然這并不容易,因為你不是Python之父

動手比不動手要好

但不假思索就動手還不如不做

如果你的方案很難懂,那肯定不是一個好方案

如果你的方案很好懂,那肯定是一個好方案

命名空間非常有用,我們應當多加利用