成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PEP 8 摘錄

AdolphLWQ / 495人閱讀

摘要:關(guān)于命名不同的對(duì)象會(huì)有不同的規(guī)范包小寫,可以使用但是不推薦使用下劃線。如果需要捕捉所有擾亂程序的異常,可以使用對(duì)于不同的輸入,函數(shù)的返回值類型應(yīng)該保持一致字符串操作中,盡可能使用字符串類的方法判斷對(duì)象的類別,盡量使用歡迎討論,歡迎指出問(wèn)題

前言

PEP 8 是python代碼規(guī)范說(shuō)明,里面規(guī)定了一些推薦的python代碼的格式與用法。筆者將在本文中做一些總結(jié),不是為了純粹的翻譯PEP 8,而是根據(jù)個(gè)人習(xí)慣與喜好進(jìn)行的一個(gè)整理。如有謬誤,歡迎指出。

PEP 8 官方文檔:這里

A Follish Consistency is the Hobgoblin of Little Minds

永遠(yuǎn)不要為了和已有的文檔保持一致而特意做出不自然的改變,否則,這只會(huì)限制你的思維,降低你的效率。Guido在這里寫下的這些規(guī)范是處于代碼的可讀性考慮的,但是如果有的時(shí)候這些規(guī)范也不一定適用,例如:

如果使用了這些規(guī)范會(huì)降低可讀性;

如果代碼寫于規(guī)范面世以前;

如果代碼使用到了老版本的依賴庫(kù),然而這些老版本的依賴庫(kù)且兼容新的規(guī)范;

如果已有代碼使用了另外的一種風(fēng)格;

代碼規(guī)范

多參數(shù)情況下適當(dāng)縮進(jìn)

# function
def long_function_name(  # no argument on the first line
        var_one, var_two,  # more indentation to distinguish this from the rest
        var_three, var_four):
    print(var_one)
# list
my_list = [
    1, 2, 3,
    4, 5, 6,
    7, 8, 9,  # add a comma here to be consistent with the preceding lines
    ]
# long if -statement
if (this_is_one_thing
        and that_is_another_thing)  # more indentation to distinguish this
    do_something()

使用4個(gè)空格鍵替代制表鍵

每行字符數(shù)控制在79個(gè)以內(nèi),必要的時(shí)候可使用

with open("/path/to/the/file/to/read") as file_1, 
     open("/path/to/the/file/to/read") as file_2:
    file_2.write(file_1.read())

多行分別import依賴庫(kù),且須放在全局變量和常量之前

import os
import sys
import other_standard_libraries
import related_third_parties
ipmort local applications

python不區(qū)分雙引號(hào)"和單引號(hào)",選一個(gè)適合你自己的風(fēng)格,然后堅(jiān)持下去

空白符的規(guī)則很繁瑣,基本上和英文書寫的規(guī)范一致,下面列舉了部分情況

ham[1:9], ham[1:9:3], ham[1::3], ham[1:9:]
ham[lower+offset : upper+offset]  # equal amounts on either side of the operator

在分配默認(rèn)值或者鍵值對(duì)賦值的時(shí)候,等號(hào)=周圍不要用空格

def complex(real, imag=0.0):
    return magic(r=real, i=img)

關(guān)于注釋,不要添加與代碼邏輯相違背的注釋,也不要添加顯而易見(jiàn)的注釋。記住一點(diǎn),注釋是為了增強(qiáng)可讀性。

關(guān)于命名,不同的對(duì)象會(huì)有不同的規(guī)范:

包:小寫,可以使用但是不推薦使用下劃線_。一些利用C/C++編寫的包的名字可以以下劃線開頭;

類:CapWords命名規(guī)范,例如CapitalizeWords, HTTPServerError

異常:其本質(zhì)是一個(gè)類,所以沿用上面的規(guī)范,另外需要以Error_開頭

函數(shù):小寫,并且用下劃線隔開

方法與變量:沿用函數(shù)的命名規(guī)范,另外非公有變量需要以_開頭

方法規(guī)范

None作比較的使用,不要使用==,使用is或者is not

字符串的合并操作不要使用a += b或者a = a + b,使用"".join()

Excepetion而不是BaseException庫(kù)中繼承異常

拋出異常的時(shí)候,請(qǐng)使用raise ValueError("message")

在捕捉異常語(yǔ)句中,請(qǐng)盡可能指明捕捉的異常類別。如果需要捕捉所有擾亂程序的異常,可以使用

try:
    some_magic()
except Exception as exc:
    print(str(exc))
    raise some_error
else:
    everything_is_good()
finally:
    clean_up()

對(duì)于不同的輸入,函數(shù)的返回值類型應(yīng)該保持一致

def foo(x):
    if x >= 0:
        return math.sqrt(x)
    else:
        return None  # should also be a value or None

字符串操作中,盡可能使用字符串類的方法

"".startswith()
"".endswith()

判斷對(duì)象的類別,盡量使用isinstance()

歡迎討論,歡迎指出問(wèn)題
Weiming
25 May 2016

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/37967.html

相關(guān)文章

  • 如何用PEP 8編寫優(yōu)雅的Python代碼

    摘要:如果需要在二元運(yùn)算符周圍做換行操作,例如和,那么需要將換行操作放在前面,這條規(guī)則源于數(shù)學(xué),數(shù)學(xué)家同意在二元運(yùn)算符之前換行以可提高可讀性,比較以下兩個(gè)例子。在二元運(yùn)算符之前換行可以讓代碼更加具有可讀性,所鼓勵(lì)這種方式。 原文地址:How to Write Beautiful Python Code With PEP 8 作者:Jasmine Finer 翻譯:howie6879 ...

    seanHai 評(píng)論0 收藏0
  • 學(xué)習(xí)Python,怎能不懂點(diǎn)PEP呢?

    摘要:或許你是一個(gè)初入門的小白,完全不知道是什么。到目前為止,它擁有個(gè)兄弟姐妹。此外,關(guān)于對(duì)的貢獻(xiàn),還有一種很有效的方式,就是將翻譯成中文,造福國(guó)內(nèi)的學(xué)習(xí)社區(qū)。 或許你是一個(gè)初入門Python的小白,完全不知道PEP是什么。又或許你是個(gè)學(xué)會(huì)了Python的熟手,見(jiàn)過(guò)幾個(gè)PEP,卻不知道這玩意背后是什么。那正好,本文將系統(tǒng)性地介紹一下PEP,與大家一起加深對(duì)PEP的了解。 目前,國(guó)內(nèi)各類教程不...

    Magicer 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<