pep8 是什麼呢,簡單說就是一種編碼規範,是為了讓**「更好看」,更容易被閱讀。 具體有這些規範,參考 pep 8 –style guide for python code.當然也可以使用pycharm檢查或使用pylint.下面是規範總結
def foo(first, second, third, fourth, fifth,
sixth, and_some_other_very_long_param):
user = user.objects.filter_by(first=first, second=second, third=third) \
.skip(100).limit(100) \
.all()
text = ('long strings can be made up '
'of several shorter strings.')
type
public
inernal
modules
lower_with_under
_lower_with_under
packages
lower_with_under
classes
capwords
_capwords
exceptions
capwords
functions
lower_with_under()
_lower_with_under()
global/class constans
caps_with_under
caps_with_under
global/class variables
lower_with_under
_lower_with_under
instance variables
lower_with_under
_lower_with_under(protected)or __lower_with_under
method names
lower_with_under()
_lower_with_under(protected)or __lower_with_under
function/method parameters
lower_with_under
local variables
lower_with_under
標準庫第三方庫
本專案的 package 和 module
不要使用隱式的相對匯入(implicit relative imports),可是使用顯示的相對匯入(explicit relative imports),如 from …utils import parse,最好使用全路徑匯入(absolute imports) 對於不同的 package,乙個 import 單獨一行,同乙個 package/module 下的內容可以寫一起:
# bad
import sys, os, time
# good
import os
import sys
import time
# ok
from flask import flask, render_template, jsonify
# bad 無謂的注釋
x = x + 1 # increase x by 1
# bad 錯誤的注釋
x = x - 1 # increase x by 1
# bad
try:
user = user()
user.name = "leon"
user.age = int(age) # 可能丟擲異常
user.created_at = datetime.datetime.utcnow()
db.session.add(user)
db.session.commit() # 可能丟擲異常
except:
db.session.rollback()
# better
try:
age = int(age)
except (typeerror, valueerror):
return # 或別的操作
user = user()
user.name = "leon"
user.age = age
user.created_at = datetime.datetime.utcnow()
db.session.add(user)
try:
db.session.commit()
except sqlalchemy.exc.sqlalchemyerror: # 或者更具體的異常
db.session.rollback()
finally:
db.session.close()
用 key in dict 而不是 dict.has_key()
# bad
if d.has_key(k):
do_something()
# good
if k in d:
do_something()
用 set 加速 「存在性」 檢查,list 的查詢是線性的,複雜度 o(n),set 底層是 hash table, 複雜度 o(1),但用 set 需要比 list 更多記憶體空間 PEP8編碼規範
pep8 python 編碼規範 一 編排 1 縮排。4個空格的縮排 編輯器都可以完成此功能 不使用tap,更不能混合使用tap和空格。2 每行最大長度79,換行可以使用反斜槓,最好使用圓括號。換行點要在操作符的後邊敲回車。3 類和top level函式定義之間空兩行 類中的方法定義之間空一行 函式...
PEP8編碼規範
一 編排 1 縮排。4個空格的縮排 編輯器都可以完成此功能 不使用tap,更不能混合使用tap和空格。2 每行最大長度79,換行可以使用反斜槓,最好使用圓括號。換行點要在操作符的後邊敲回車。3 類和top level函式定義之間空兩行 類中的方法定義之間空一行 函式內邏輯無關段落之間空一行 其他地方...
書寫規範 PEP8
參考 函式和方法引數 不要為了遵守pep約定而破壞相容性!幾個很好的理由去忽略特定的規則 當遵循這份指南之後 的可讀性變差,甚至是遵循pep規範的人也覺得可讀性差。與周圍的 保持一致 也可能出於歷史原因 儘管這也是清理他人混亂 真正的xtreme programming風格 的乙個機會。有問題的 出...