日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python代码规范之简明概述

發(fā)布時(shí)間:2025/3/20 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python代码规范之简明概述 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、編碼

  • 如無特殊情況, 文件一律使用 UTF-8 編碼
  • 如無特殊情況, 文件頭部必須加入#-*-coding:utf-8-*-標(biāo)識

2、代碼格式

2.1、縮進(jìn)
  • 統(tǒng)一使用 4 個(gè)空格進(jìn)行縮進(jìn)
2.2、行寬

每行代碼盡量不超過 80 個(gè)字符(在特殊情況下可以略微超過 80 ,但最長不得超過 120)

理由:

  • 這在查看 side-by-side 的 diff 時(shí)很有幫助
  • 方便在控制臺下查看代碼
  • 太長可能是設(shè)計(jì)有缺陷

2.3、引號

簡單說,自然語言使用雙引號,機(jī)器標(biāo)示使用單引號,因此 代碼里 多數(shù)應(yīng)該使用 單引號

  • 自然語言 使用雙引號 "..."
    例如錯誤信息;很多情況還是 unicode,使用u"你好世界"
  • 機(jī)器標(biāo)識 使用單引號 '...' 例如 dict 里的 key
  • 正則表達(dá)式 使用原生的雙引號 r"..."
  • 文檔字符串 (docstring) 使用三個(gè)雙引號 """......"""
2.4、空行
  • 模塊級函數(shù)和類定義之間空兩行;
  • 類成員函數(shù)之間空一行;
class A:def __init__(self):passdef hello(self):passdef main():pass
  • 可以使用多個(gè)空行分隔多組相關(guān)的函數(shù)
  • 函數(shù)中可以使用空行分隔出邏輯相關(guān)的代碼
2.5、編碼
  • 文件使用 UTF-8 編碼
  • 文件頭部加入#-*-conding:utf-8-*-標(biāo)識

3、import 語句

  • import 語句應(yīng)該分行書寫
''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' # 正確的寫法 import os import sys# 不推薦的寫法 import sys,os# 正確的寫法 from subprocess import Popen, PIPE
  • import語句應(yīng)該使用 absolute import
# 正確的寫法 from foo.bar import Bar# 不推薦的寫法 from ..bar import Bar
  • import語句應(yīng)該放在文件頭部,置于模塊說明及docstring之后,于全局變量之前;
  • import語句應(yīng)該按照順序排列,每組之間用一個(gè)空行分隔
import os import sysimport msgpack import zmqimport foo
  • 導(dǎo)入其他模塊的類定義時(shí),可以使用相對導(dǎo)入
from myclass import MyClass
  • 如果發(fā)生命名沖突,則可使用命名空間
''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' import bar import foo.barbar.Bar() foo.bar.Bar()

4、空格

  • 在二元運(yùn)算符兩邊各空一格[=,-,+=,==,>,in,is not, and]:
# 正確的寫法 i = i + 1 submitted += 1 x = x * 2 - 1 hypot2 = x * x + y * y c = (a + b) * (a - b)# 不推薦的寫法 i=i+1 submitted +=1 x = x*2 - 1 hypot2 = x*x + y*y c = (a+b) * (a-b)
  • 函數(shù)的參數(shù)列表中,,之后要有空格
''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' # 正確的寫法 def complex(real, imag):pass# 不推薦的寫法 def complex(real,imag):pass
  • 函數(shù)的參數(shù)列表中,默認(rèn)值等號兩邊不要添加空格
# 正確的寫法 def complex(real, imag=0.0):pass# 不推薦的寫法 def complex(real, imag = 0.0):pass
  • 左括號之后,右括號之前不要加多余的空格
# 正確的寫法 spam(ham[1], {eggs: 2})# 不推薦的寫法 spam( ham[1], { eggs : 2 } )
  • 字典對象的左括號之前不要多余的空格
# 正確的寫法 dict['key'] = list[index]# 不推薦的寫法 dict ['key'] = list [index]
  • 不要為對齊賦值語句而使用的額外空格
# 正確的寫法 x = 1 y = 2 long_variable = 3# 不推薦的寫法 x = 1 y = 2 long_variable = 3

5、換行

Python 支持括號內(nèi)的換行。這時(shí)有兩種情況。

  • 第二行縮進(jìn)到括號的起始處
  • foo = long_function_name(var_one, var_two,var_three, var_four)
  • 第二行縮進(jìn) 4 個(gè)空格,適用于起始括號就換行的情形
  • def long_function_name(var_one, var_two, var_three,var_four):print(var_one)

    使用反斜杠\換行,二元運(yùn)算符+ .等應(yīng)出現(xiàn)在行末;長字符串也可以用此法換行

    ''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' session.query(MyTable).\filter_by(id=1).\one()print 'Hello, '\'%s %s!' %\('Harry', 'Potter')

    禁止復(fù)合語句,即一行中包含多個(gè)語句:

    # 正確的寫法 do_first() do_second() do_third()# 不推薦的寫法 do_first();do_second();do_third();

    if/for/while一定要換行:

    # 正確的寫法 if foo == 'blah':do_blah_thing()# 不推薦的寫法 if foo == 'blah': do_blash_thing()

    6、docstring

    docstring 的規(guī)范中最其本的兩點(diǎn):

  • 所有的公共模塊、函數(shù)、類、方法,都應(yīng)該寫 docstring 。私有方法不一定需要,但應(yīng)該在 def 后提供一個(gè)塊注釋來說明。
  • docstring 的結(jié)束"""應(yīng)該獨(dú)占一行,除非此 docstring 只有一行。
  • """Return a foobar Optional plotz says to frobnicate the bizbaz first. """"""Oneline docstring"""

    總結(jié)

    以上是生活随笔為你收集整理的Python代码规范之简明概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。