中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python的編碼規則是什么

發布時間:2020-09-08 14:50:42 來源:億速云 閱讀:260 作者:小新 欄目:編程語言

小編給大家分享一下python的編碼規則是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

python的編碼規則基本遵從 PEP 準則。

但是,命名和單行長度更靈活。

PEP8 涵蓋了諸如空格、函數/類/方法之間的換行、import、對已棄用功能的警告之類的尋常東西,大都不錯。

應用這些準則的最佳工具是 flake8,還可以用來發現一些愚蠢的語法錯誤。

PEP8 原本只是一組指導原則,不必嚴格甚至虔誠地信奉。一定記得閱讀 PEP8 「愚蠢的一致性就是小人物的小妖精」一節。若要進一步了解,可以聽一下 Raymond Hettinger 的精彩演講,「超越 PEP8」。

唯一引起過多爭議的準則事關單行長度和命名。要調整起來也不難。

靈活的單行長度

若是厭煩 flake8 死板的單行長度不得超過 79 個字符的限制,完全可以忽略或修改這一準則。這仍然不失為一條不錯的經驗法則,就像英語中句子不能超過 50 個單詞,段落不能超過 10 個句子之類的規則一樣。這是 flake8 配置文件 的鏈接,可以看到 max-line-length配置選項。值得注意的是,可以給要忽略 flake8 檢查的那一行加上 # noqa 注釋,但是請勿濫用。

盡管如此,超過九成的代碼行都不應該超過 79 個字符,原因很簡單,「扁平勝于嵌套」。如果函數每一行都超出了 79 個字符,肯定有別的東西出錯了,這時要看看代碼而不是 flake8 配置。

一致的命名

關于命名,遵循幾條簡單的準則就可以避免眾多足以影響整個小組的麻煩。

推薦的命名規則

下面這些準則大多改編自 Pacoo 小組。

類名:駝峰式 和首字母縮略詞:HTTPWriter 優于 HttpWriter。

變量名:lower_with_underscores。

方法名和函數名:lower_with_underscores。

模塊名:lower_with_underscores.py。(但是不帶下劃線的名字更好!)

常量名:UPPER_WITH_UNDERSCORES。

預編譯的正則表達式:name_re。

通常都應該遵循這些準則,除非要參照其他工具的命名規范,比如數據庫 schema 或者消息格式。

還可以用 駝峰式 給類似類卻不是類的東西命名。使用 駝峰式 的主要好處在于讓人們以「全局名詞」來關注某個東西,而不是看作局部標記或動詞。值得注意的是,Python 給 True,False 和 None 這些根本不是類的東西命名也是用 駝峰式。

不要用前綴后綴

…… 比如 _prefix 或 suffix_ 。函數和方法名可以用 _prefix 標記來暗示其是「私有的」,但是最好只在編寫預期會廣泛使用的 API 以及用 _prefix 標記來隱藏信息的時候謹慎使用。

PEP8 建議使用結尾的下劃線來避免與內置關鍵字重名,比如:

sum_ = sum(some_long_list)
print(sum_)

臨時這樣用也可以,不過最好還是選一個別的名字。

用 __mangled 這種雙下劃線前綴給類/實例/方法命名的情況非常少,這實際上涉及特殊的名字修飾,非常罕見。不要起 __dunder__ 這種格式的名字,除非要實現 Python 標準協議,比如 __len__;這是為 Python 內部協議保留的命名空間,不應該在其中增加自定義的東西。

不要用單字符名字

(不過)一些常見的單字符名字可以接受。

在 lambda 表達式中,單參數函數可以命名為 x 。比如:

encode = lambda x: x.encode("utf-8", "ignore")

解包元組時可以用 _ 丟棄不需要的標記。比如:

_, url, urlref = data

意思就是說「忽略第一個元素」。

和 lambda 類似,在解析列表/字典/集合的時候,以及在生成器表達式或者一到兩行的 for 循環中,可以使用單字符迭代標記。通常選擇 x,比如:

sum(x for x in items if x > 0)

可以求 items 序列中所有正整數之和。

此外比較常見的是 i,代表 index,通常和內置的 枚舉 一起使用。比如:

for i, item in enumerate(items):
    print("%4s: %s" % (i, item))

除卻上述情形,要極少甚至避免使用單字符用作標記/參數/方法的名字。因為這樣就無法用grep 進行檢索了。

以上是python的編碼規則是什么的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青神县| 沈丘县| 尤溪县| 万安县| 新沂市| 武威市| 都昌县| 白水县| 板桥市| 姜堰市| 榕江县| 克拉玛依市| 东方市| 中卫市| 盖州市| 南漳县| 湖北省| 株洲县| 广饶县| 通山县| 全椒县| 博野县| 台南县| 清远市| 金乡县| 长春市| 大荔县| 盐边县| 平陆县| 楚雄市| 招远市| 靖边县| 九台市| 紫金县| 合阳县| 博野县| 德兴市| 思茅市| 迁西县| 铁力市| 栾川县|