色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python官方竟然給出了一種編碼規范PEP 8

電子工程師 ? 來源:lq ? 2019-01-02 10:24 ? 次閱讀

寫在之前

每個人都有自己的代碼風格,隨著寫的行數增加,自己對于代碼的審美也會變的不一樣,這就像是一個逐漸蛻變的過程,每過一段時間回頭再去看看自己之前寫的代碼就會生出一種「這么丑的玩意兒竟然是我寫的」這種感慨。

之前不論是寫 C 或者是 C++ 的時候,對于代碼風格的好壞觀感完全是憑著自己的主觀意識,也沒有什么官方標準說這樣那樣就是好看的。等學了 Python 以后,神奇的發現 Python 官方竟然給出了一種編碼規范 PEP 8,當然這個只是個標準而已,并沒有強制要求大家都要去遵守,但又好像大多數人都使用了 PEP 8 編碼風格,使它已經成為了事實上的代碼風格標準。

PEP 8 編碼規范

Python 代碼從第一眼看上去,給人的感覺就是簡潔優美,可讀性強,也就是我們日常所說的「高顏值」。一方面是因為 Python 自身的優秀設計,比如統一的鎖進,沒有多余的符號從而讓代碼變的更加簡潔;另一方面就是因為它有著一套較為統一的編碼風格,當然它本身只是編碼風格方面的建議而不是強制,相應的在編寫 Python 代碼的編輯器自動提供 PFP 8 檢查,當你編寫的代碼違反了 PEP 8 規范的時候,會給出警告信息和修正的建議。與此同時,還有專門的檢查工具對 Python 的代碼風格進行檢查。

由上,還是建議在編寫 Python 代碼的時候都遵循 PEP 8 編碼規范,畢竟你以后不可能是只一個人寫代碼,未來不論是在公司或者某些開源項目中,作為其中的一份子,肯定還是要在風格上向大眾看齊的。

PEP 8 編碼規范詳細的給出了 Python 編碼的指導,包括什么對齊啦,包的導入順序啦,空格和注釋啦還有命名習慣等方方面面,并且還有詳細的事例。

下面我以「包」的導入為例,看一下 PEP 8 給出的具體編程指導。在 Python 中, import 應該一次只導入一個模塊,不同的模塊應該獨立一行:

importpandasimportnumpy

反面例子:

importpandas,numpy

如果想要從一個模塊里面導入多個,也可以像下面這樣:

fromsubprocessimportPopen,PIPE

import 語句應該處于源碼文件的頂部,位于模塊注釋和文檔字符串之后,全局變量和常量之前。在導入不同的庫的時候,應該按照以下的順序分組,各個分組之間以空行分隔:

導入標準庫模塊

導入相關第三方庫模塊

導入當前應用程序/庫模塊

具體事例如下所示:

importosimporttimeimportpsutilfromtestimportu_test,my_test

Python 中還支持相對導入和絕對導入,在這里還是強推絕對導入。因為絕對導入的可讀性更好一些,也不容易出錯,即使出錯了也會給出更加詳細的錯誤信息。具體如下所示:

fromsub_packageimporttoolsfromsub_package.toolsimportmsg

當然除了上述以外還有更多對于包的規范的描述,PEP 8 的編碼風格指導比較長,并且寫的非常詳細,所以我就不在這一一介紹了,詳細的可以參考 Python 官網上的資料。

pycodestyle 檢查代碼規范

我在上面說過 PEP 8 只是官方給出的 Python 編碼規范,并沒有強制要求大家都遵守,但是又由于大家都在用,所以它也就變成了事實上的 Python 代碼風格標準,既然都是標準了,那么就應該有工具來檢查這個標準,這樣可以幫助 Python 小白規范自己的代碼,也可以幫助大家在開源或者工作中形成統一的代碼風格。

為了達成上述的目的,官方提供了同名的命令行工具來檢查 Python 代碼是否違反了 PEP 8 規范,并且對違反規范的地方給出了相應的提示信息。

pipinstallpep8

規范的名字是 PEP 8 ,這個檢查代碼風格的命令行工具叫 pep8,這個很容易引起大家的困惑,因此 Python 之父建議將 pep8 重新命名為 pycodestyle,下面我們來看一下 pycodestyle 的用法。

首先通過 pip 安裝一下:

pipinstallpycodestyle

對一個或者多個文件運行 pycodestyle,打印檢查報告:

通過 --show-source 顯示不符合規范的源碼,以便程序員進行修改,具體如下所示:

autopep8 格式化代碼

autopep8 能夠將 Python 代碼自動格式化為 PEP 8 風格,它使用 pycodestyle 工具來決定代碼中的哪部分需要被格式化,這能夠修復大部分 pycodestyle 工具中報告的排版問題。autopep8 本身也是一個用 Python 寫的工具,所以我們還是可以用 pip 直接安裝:

pipinstallautopep8

它的使用方式也很簡單,具體如下所示:

autopep8--in-placetest_search.py

上述代碼如果不帶 --in-place 的話,會將 autopep8 格式化以后的代碼直接輸出到控制臺。我們可以用這種方式檢查 autopep8 的修改,使用 --in-place 則會直接將結果保存到源文件中。在這我繼續用上面的例子中用到的 py 文件,具體如下所示:

上面的例子中,autopep8 順利的修復了所有的問題,但是如果你這個時候查看源文件的話,你會發現源文件的內容還是和原來一樣,并沒有被修改。這個時候我們就要用到 --in-place,加上這個選項將不會有任何輸出, autopep8 會直接修改源文件。

autopep8--in-placetest_search.py

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4823

    瀏覽量

    68904
  • 編輯器
    +關注

    關注

    1

    文章

    806

    瀏覽量

    31258
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    84959

原文標題:如何寫出符合Python審美的代碼風格?

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Python全套教程_Python從入門到精通day1_10-PEP8 編碼規范

    python
    電子學習
    發布于 :2023年01月13日 15:55:11

    Python編碼規范分享

    國際規范名:PEP 8變量名規范(標識符規范)字符串函數名小寫, 多個單詞用 _ 分隔開由字母數字或下劃線組成,首字母不能為數字 2. 不能
    發表于 10-27 07:15

    介紹一種H.264編碼中幀間模式選擇的算法

    本文提出了一種H.264編碼中幀間模式選擇的算法,并針對該算法給出了4計算閾值的方法。
    發表于 06-04 07:17

    一種實用的混沌保密編碼方法

    基于實用符號動力學的基礎理論,提出了一種實用的混沌保密編碼方法,該方法借助于單峰的logistic映射處于混沌吸引子狀態時產生的符號序列作為密鑰,對信源編碼信號進行加密
    發表于 11-18 00:17 ?12次下載

    一種安全的糾錯網絡編碼

    該文利用消息空間的所有子空間上的一種度量,給出了一種安全的糾錯網絡編碼。首先,此度量下的最小距離譯碼法可以糾正定維數的錯誤。另外,在此
    發表于 11-09 13:32 ?19次下載

    一種實用的混沌保密編碼方法

    一種實用的混沌保密編碼方法 基于實用符號動力學的基礎理論,提出了一種實用的混沌保密編碼方法,該方法借助于單峰的logistic映射處于混沌
    發表于 11-18 10:55 ?10次下載

    一種數字調幅廣播編碼調制器技術

    本文通過對寬帶數據鏈及其關鍵技術的研究,提出了一種基于 DSP 的數字調幅廣播DRM(Digital Radio Mondiale)編碼調制器的實現方案,給出了
    發表于 12-28 11:23 ?20次下載

    一種頻率編碼鍵盤的設計與實現

    基于頻率編碼的思想,設計了一種頻率編碼鍵盤,分析了電路的工作機理,并給出了有關的匯編程序,從而達到僅用條I/O 線識別多個按鍵的目的,簡化
    發表于 06-23 16:49 ?0次下載
    <b class='flag-5'>一種</b>頻率<b class='flag-5'>編碼</b>鍵盤的設計與實現

    基于雙向MIMO中繼系統的一種編碼策略

    為了克服已有的雙向MIMO中繼系統模型中預編碼技術計算量大的缺點,提出了一種基于雙向MIMO系統的三時段預編碼策略,給出了該策略的模型和算法
    發表于 06-09 16:39 ?34次下載
    基于雙向MIMO中繼系統的<b class='flag-5'>一種</b>預<b class='flag-5'>編碼</b>策略

    一種頻率編碼鍵盤的設計與實現

    基于頻率編碼的思想,設計了一種頻率編碼鍵盤,分析了電路的工作機理,并給出了有關的匯編程序,從而達到了僅用條I/O線識別多個按鍵的目的 ,簡
    發表于 03-30 17:02 ?10次下載

    初入門Python的小白介紹PEP是什么?

    或許你是個初入門Python的小白,完全不知道PEP是什么。又或許你是個學會了Python的熟手,見過幾個PEP,卻不知道這玩意背后是什么
    發表于 11-20 14:38 ?2351次閱讀
    初入門<b class='flag-5'>Python</b>的小白介紹<b class='flag-5'>PEP</b>是什么?

    Python一種什么語言,它可以用來做些什么

    智慧人生,首選Python Python一種什么語言? Python一種計算機程序設計語言。你可能已經聽說過很多種流行的編程語言,比如非
    發表于 04-12 10:56 ?1303次閱讀

    處理器擴展包(PEP)和調試頭規范

    處理器擴展包(PEP)和調試頭規范免費下載。
    發表于 05-12 10:31 ?8次下載

    Python中的默認編碼

    我們使用Pycharm來編寫Python程序時會指定工程編碼和文件編碼為UTF-8,那么Python代碼被保存到磁盤時就會被轉換為UTF-
    的頭像 發表于 07-05 16:11 ?1161次閱讀
    <b class='flag-5'>Python</b>中的默認<b class='flag-5'>編碼</b>

    Python字符編碼轉換

    UNICODE字符串可以與任意字符編碼的字節進行相互轉換,如圖: 那么大家很容易想到個問題,就是不同的字符編碼的字節可以通過Unicode相互轉換嗎?答案是肯定的。 Python2中
    的頭像 發表于 07-05 16:25 ?1125次閱讀
    <b class='flag-5'>Python</b>字符<b class='flag-5'>編碼</b>轉換
    主站蜘蛛池模板: 调教玩弄奶头乳夹开乳震动器 | 在线 国产 欧美 亚洲 天堂 | 久久这里只有精品视频e | 老头狠狠挺进小莹体内视频 | 最懂男人心论坛 | 亚洲国产亚综合在线区尤物 | 牛牛在线(正)精品视频 | 色综合久久综合网观看 | 外国xxxx| 国产精品色无码AV在线观看 | 美女激清床上戏大全 | 在线免费观看成年人视频 | av老司机色爱区综合 | 国产呻吟久久久久久久92 | 2019天天射干 | 中文字幕人成人乱码亚洲影视S | 漂亮妈妈中文字幕版 | 国产学生无码中文视频一区 | 午夜家庭影院 | 久久国产免费观看精品1 | 同居了嫂子在线观看 | 清冷受被CAO的合不拢 | 免费成人高清在线视频 | 色综合久久久久久 | 色婷婷我要去我去也 | 色99久久久久高潮综合影院 | 久久精品久久久 | 我们日本在线观看免费动漫下载 | 国产精品久久久久久久AV下载 | 色欲AV精品人妻一区二区三区 | 日韩娇小性hd | 波多野结衣的AV一区二区三区 | 91popny蜜桃臀| 国产剧情福利AV一区二区 | 国产精品99久久久久久WWW | 亚洲欧美中文字幕网站大全 | 国产a在线不卡 | 久久视频精品38线视频在线观看 | 影音先锋男人资源813. | 中文视频在线观看 | 日本色呦呦 |