PEP8規範總結

2021-09-24 09:35:35 字數 2795 閱讀 7550

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風格 的乙個機會。有問題的 出...