您好,登錄后才能下訂單哦!
小編給大家分享一下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的編碼規則是什么的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。