在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

電子工程師 ? 來(lái)源:lq ? 2019-01-02 10:24 ? 次閱讀

寫(xiě)在之前

每個(gè)人都有自己的代碼風(fēng)格,隨著寫(xiě)的行數(shù)增加,自己對(duì)于代碼的審美也會(huì)變的不一樣,這就像是一個(gè)逐漸蛻變的過(guò)程,每過(guò)一段時(shí)間回頭再去看看自己之前寫(xiě)的代碼就會(huì)生出一種「這么丑的玩意兒竟然是我寫(xiě)的」這種感慨。

之前不論是寫(xiě) C 或者是 C++ 的時(shí)候,對(duì)于代碼風(fēng)格的好壞觀感完全是憑著自己的主觀意識(shí),也沒(méi)有什么官方標(biāo)準(zhǔn)說(shuō)這樣那樣就是好看的。等學(xué)了 Python 以后,神奇的發(fā)現(xiàn) Python 官方竟然給出了一種編碼規(guī)范 PEP 8,當(dāng)然這個(gè)只是個(gè)標(biāo)準(zhǔn)而已,并沒(méi)有強(qiáng)制要求大家都要去遵守,但又好像大多數(shù)人都使用了 PEP 8 編碼風(fēng)格,使它已經(jīng)成為了事實(shí)上的代碼風(fēng)格標(biāo)準(zhǔn)。

PEP 8 編碼規(guī)范

Python 代碼從第一眼看上去,給人的感覺(jué)就是簡(jiǎn)潔優(yōu)美,可讀性強(qiáng),也就是我們?nèi)粘Kf(shuō)的「高顏值」。一方面是因?yàn)?Python 自身的優(yōu)秀設(shè)計(jì),比如統(tǒng)一的鎖進(jìn),沒(méi)有多余的符號(hào)從而讓代碼變的更加簡(jiǎn)潔;另一方面就是因?yàn)樗兄惶纵^為統(tǒng)一的編碼風(fēng)格,當(dāng)然它本身只是編碼風(fēng)格方面的建議而不是強(qiáng)制,相應(yīng)的在編寫(xiě) Python 代碼的編輯器自動(dòng)提供 PFP 8 檢查,當(dāng)你編寫(xiě)的代碼違反了 PEP 8 規(guī)范的時(shí)候,會(huì)給出警告信息和修正的建議。與此同時(shí),還有專(zhuān)門(mén)的檢查工具對(duì) Python 的代碼風(fēng)格進(jìn)行檢查。

由上,還是建議在編寫(xiě) Python 代碼的時(shí)候都遵循 PEP 8 編碼規(guī)范,畢竟你以后不可能是只一個(gè)人寫(xiě)代碼,未來(lái)不論是在公司或者某些開(kāi)源項(xiàng)目中,作為其中的一份子,肯定還是要在風(fēng)格上向大眾看齊的。

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

下面我以「包」的導(dǎo)入為例,看一下 PEP 8 給出的具體編程指導(dǎo)。在 Python 中, import 應(yīng)該一次只導(dǎo)入一個(gè)模塊,不同的模塊應(yīng)該獨(dú)立一行:

importpandasimportnumpy

反面例子:

importpandas,numpy

如果想要從一個(gè)模塊里面導(dǎo)入多個(gè),也可以像下面這樣:

fromsubprocessimportPopen,PIPE

import 語(yǔ)句應(yīng)該處于源碼文件的頂部,位于模塊注釋和文檔字符串之后,全局變量和常量之前。在導(dǎo)入不同的庫(kù)的時(shí)候,應(yīng)該按照以下的順序分組,各個(gè)分組之間以空行分隔:

導(dǎo)入標(biāo)準(zhǔn)庫(kù)模塊

導(dǎo)入相關(guān)第三方庫(kù)模塊

導(dǎo)入當(dāng)前應(yīng)用程序/庫(kù)模塊

具體事例如下所示:

importosimporttimeimportpsutilfromtestimportu_test,my_test

Python 中還支持相對(duì)導(dǎo)入和絕對(duì)導(dǎo)入,在這里還是強(qiáng)推絕對(duì)導(dǎo)入。因?yàn)榻^對(duì)導(dǎo)入的可讀性更好一些,也不容易出錯(cuò),即使出錯(cuò)了也會(huì)給出更加詳細(xì)的錯(cuò)誤信息。具體如下所示:

fromsub_packageimporttoolsfromsub_package.toolsimportmsg

當(dāng)然除了上述以外還有更多對(duì)于包的規(guī)范的描述,PEP 8 的編碼風(fēng)格指導(dǎo)比較長(zhǎng),并且寫(xiě)的非常詳細(xì),所以我就不在這一一介紹了,詳細(xì)的可以參考 Python 官網(wǎng)上的資料。

pycodestyle 檢查代碼規(guī)范

我在上面說(shuō)過(guò) PEP 8 只是官方給出的 Python 編碼規(guī)范,并沒(méi)有強(qiáng)制要求大家都遵守,但是又由于大家都在用,所以它也就變成了事實(shí)上的 Python 代碼風(fēng)格標(biāo)準(zhǔn),既然都是標(biāo)準(zhǔn)了,那么就應(yīng)該有工具來(lái)檢查這個(gè)標(biāo)準(zhǔn),這樣可以幫助 Python 小白規(guī)范自己的代碼,也可以幫助大家在開(kāi)源或者工作中形成統(tǒng)一的代碼風(fēng)格。

為了達(dá)成上述的目的,官方提供了同名的命令行工具來(lái)檢查 Python 代碼是否違反了 PEP 8 規(guī)范,并且對(duì)違反規(guī)范的地方給出了相應(yīng)的提示信息。

pipinstallpep8

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

首先通過(guò) pip 安裝一下:

pipinstallpycodestyle

對(duì)一個(gè)或者多個(gè)文件運(yùn)行 pycodestyle,打印檢查報(bào)告:

通過(guò) --show-source 顯示不符合規(guī)范的源碼,以便程序員進(jìn)行修改,具體如下所示:

autopep8 格式化代碼

autopep8 能夠?qū)?Python 代碼自動(dòng)格式化為 PEP 8 風(fēng)格,它使用 pycodestyle 工具來(lái)決定代碼中的哪部分需要被格式化,這能夠修復(fù)大部分 pycodestyle 工具中報(bào)告的排版問(wèn)題。autopep8 本身也是一個(gè)用 Python 寫(xiě)的工具,所以我們還是可以用 pip 直接安裝:

pipinstallautopep8

它的使用方式也很簡(jiǎn)單,具體如下所示:

autopep8--in-placetest_search.py

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

上面的例子中,autopep8 順利的修復(fù)了所有的問(wèn)題,但是如果你這個(gè)時(shí)候查看源文件的話(huà),你會(huì)發(fā)現(xiàn)源文件的內(nèi)容還是和原來(lái)一樣,并沒(méi)有被修改。這個(gè)時(shí)候我們就要用到 --in-place,加上這個(gè)選項(xiàng)將不會(huì)有任何輸出, autopep8 會(huì)直接修改源文件。

autopep8--in-placetest_search.py

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4891

    瀏覽量

    70306
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    817

    瀏覽量

    31815
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4825

    瀏覽量

    86268

原文標(biāo)題:如何寫(xiě)出符合Python審美的代碼風(fēng)格?

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Python全套教程_Python從入門(mén)到精通day1_10-PEP8 編碼規(guī)范

    python
    電子學(xué)習(xí)
    發(fā)布于 :2023年01月13日 15:55:11

    Python編碼規(guī)范分享

    國(guó)際規(guī)范名:PEP 8變量名規(guī)范(標(biāo)識(shí)符規(guī)范)字符串函數(shù)名小寫(xiě), 多個(gè)單詞用 _ 分隔開(kāi)由字母數(shù)字或下劃線(xiàn)組成,首字母不能為數(shù)字 2. 不能
    發(fā)表于 10-27 07:15

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

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

    一種實(shí)用的混沌保密編碼方法

    基于實(shí)用符號(hào)動(dòng)力學(xué)的基礎(chǔ)理論,提出了一種實(shí)用的混沌保密編碼方法,該方法借助于單峰的logistic映射處于混沌吸引子狀態(tài)時(shí)產(chǎn)生的符號(hào)序列作為密鑰,對(duì)信源編碼信號(hào)進(jìn)行加密
    發(fā)表于 11-18 00:17 ?12次下載

    一種安全的糾錯(cuò)網(wǎng)絡(luò)編碼

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

    一種實(shí)用的混沌保密編碼方法

    一種實(shí)用的混沌保密編碼方法 基于實(shí)用符號(hào)動(dòng)力學(xué)的基礎(chǔ)理論,提出了一種實(shí)用的混沌保密編碼方法,該方法借助于單峰的logistic映射處于混沌
    發(fā)表于 11-18 10:55 ?10次下載

    一種數(shù)字調(diào)幅廣播編碼調(diào)制器技術(shù)

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

    一種頻率編碼鍵盤(pán)的設(shè)計(jì)與實(shí)現(xiàn)

    基于頻率編碼的思想,設(shè)計(jì)了一種頻率編碼鍵盤(pán),分析了電路的工作機(jī)理,并給出了有關(guān)的匯編程序,從而達(dá)到僅用條I/O 線(xiàn)識(shí)別多個(gè)按鍵的目的,簡(jiǎn)化
    發(fā)表于 06-23 16:49 ?0次下載
    <b class='flag-5'>一種</b>頻率<b class='flag-5'>編碼</b>鍵盤(pán)的設(shè)計(jì)與實(shí)現(xiàn)

    基于雙向MIMO中繼系統(tǒng)的一種預(yù)編碼策略

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

    一種頻率編碼鍵盤(pán)的設(shè)計(jì)與實(shí)現(xiàn)

    基于頻率編碼的思想,設(shè)計(jì)了一種頻率編碼鍵盤(pán),分析了電路的工作機(jī)理,并給出了有關(guān)的匯編程序,從而達(dá)到了僅用條I/O線(xiàn)識(shí)別多個(gè)按鍵的目的 ,簡(jiǎn)
    發(fā)表于 03-30 17:02 ?10次下載

    初入門(mén)Python的小白介紹PEP是什么?

    或許你是個(gè)初入門(mén)Python的小白,完全不知道PEP是什么。又或許你是個(gè)學(xué)會(huì)了Python的熟手,見(jiàn)過(guò)幾個(gè)PEP,卻不知道這玩意背后是什么
    發(fā)表于 11-20 14:38 ?2551次閱讀
    初入門(mén)<b class='flag-5'>Python</b>的小白介紹<b class='flag-5'>PEP</b>是什么?

    Python一種什么語(yǔ)言,它可以用來(lái)做些什么

    智慧人生,首選Python Python一種什么語(yǔ)言? Python一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。你可能已經(jīng)聽(tīng)說(shuō)過(guò)很多種流行的編程語(yǔ)言,比如非
    發(fā)表于 04-12 10:56 ?1399次閱讀

    處理器擴(kuò)展包(PEP)和調(diào)試頭規(guī)范

    處理器擴(kuò)展包(PEP)和調(diào)試頭規(guī)范免費(fèi)下載。
    發(fā)表于 05-12 10:31 ?8次下載

    Python中的默認(rèn)編碼

    我們使用Pycharm來(lái)編寫(xiě)Python程序時(shí)會(huì)指定工程編碼和文件編碼為UTF-8,那么Python代碼被保存到磁盤(pán)時(shí)就會(huì)被轉(zhuǎn)換為UTF-
    的頭像 發(fā)表于 07-05 16:11 ?1419次閱讀
    <b class='flag-5'>Python</b>中的默認(rèn)<b class='flag-5'>編碼</b>

    Python字符編碼轉(zhuǎn)換

    UNICODE字符串可以與任意字符編碼的字節(jié)進(jìn)行相互轉(zhuǎn)換,如圖: 那么大家很容易想到個(gè)問(wèn)題,就是不同的字符編碼的字節(jié)可以通過(guò)Unicode相互轉(zhuǎn)換嗎?答案是肯定的。 Python2中
    的頭像 發(fā)表于 07-05 16:25 ?1392次閱讀
    <b class='flag-5'>Python</b>字符<b class='flag-5'>編碼</b>轉(zhuǎn)換
    主站蜘蛛池模板: 久久99久久精品97久久综合 | 黄色片香蕉视频 | 四虎国产精品永久在线 | 午夜影视免费观看 | 午夜黄 | 午夜高清免费观看视频 | 999久久精品国产 | 2016天天干| 日韩特级毛片免费观看视频 | 亚洲人成电影在在线观看网色 | 亚洲资源在线视频 | 国产清纯白嫩大学生正在播放 | 色猫成人网 | 九九99久久精品午夜剧场免费 | 免费视频国产 | 国产黄色网 | 午夜刺激爽爽视频免费观看 | 日本一区二区精品88 | 亚洲68283精品人体 | 高h细节肉爽文男男 | 黄色三级国产 | 国产精品人人爱一区二区白浆 | 欧美一级片免费在线观看 | 影视精品网站入口 | 狂捣猛撞侍卫攻双性王爷受 | 中文字幕第页 | 一卡二卡≡卡四卡亚洲高清 | 激情爱爱的免费视频 | 免费精品美女久久久久久久久久 | 欧美爽妇 | 丁香激情六月天 | bt天堂资源在线种子 | 日本三级黄色 | 欧美综合在线视频 | 激情五月婷婷久久 | 俺来也俺来也天天夜夜视频 | 欧美影院一区 | 色y情视频免费看 | 午夜免费的国产片在线观看 | 亚洲天堂手机在线 | 久久久久久全国免费观看 |