最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

提高Python代碼可讀性的5個(gè)技巧分享

 更新時(shí)間:2022年08月24日 11:16:48   作者:zhouluobo  
Python?中有許多方法可以幫助我們理解代碼的內(nèi)部工作原理,良好的編程習(xí)慣,可以使我們的工作事半功倍!本文為大家總結(jié)了五個(gè)技巧,希望有所幫助

不知道小伙伴們是否有這樣的困惑,當(dāng)我們回顧自己 6 個(gè)月前編寫(xiě)的一些代碼時(shí),往往會(huì)看的一頭霧水,或者是否當(dāng)我們接手其他人的代碼時(shí),

Python 中有許多方法可以幫助我們理解代碼的內(nèi)部工作原理,良好的編程習(xí)慣,可以使我們的工作事半功倍!

例如,我們最終可能會(huì)得到看起來(lái)很像下圖中的代碼。雖然不是最糟糕的,但是,我們需要擴(kuò)展一些事情,例如:

  • load_las_file 函數(shù)中的 f 和 d 代表什么?
  • 為什么我們要在 clay 函數(shù)中檢查結(jié)果?
  • 這些函數(shù)需要什么類(lèi)型? Floats? DataFrames?

在本文中,我們將著重討論如何通過(guò)文檔、提示輸入和正確的變量名稱(chēng)來(lái)提高應(yīng)用程序/腳本的可讀性的五個(gè)基本技巧。

1. Comments

我們可以對(duì)我們的代碼做的第一件事是為我們的代碼添加某些注釋?zhuān)菂s不能過(guò)度使用它。注釋?xiě)?yīng)該告訴你為什么代碼可以工作或者為什么某事以某種方式完成,而不是它是如何工作的。

Python 中的注釋通常使用井號(hào) (#) 來(lái)完成,并且可以跨越單行或多行。

# Comment using the hashtag
# Another comment using the hashtag

對(duì)于多行注釋?zhuān)覀円部梢允褂萌齻€(gè)雙引號(hào)。

"""
This is an example of
a multi-line comment
"""

在下面的示例中,代碼中添加了一些注釋?zhuān)越忉屇承┐a行背后的工作流程和推理

2. Explicit Typing

Python 語(yǔ)言是動(dòng)態(tài)類(lèi)型的,這意味著變量類(lèi)型只會(huì)在運(yùn)行時(shí)檢查。此外,變量可以在代碼執(zhí)行期間更改類(lèi)型。

另一方面,靜態(tài)類(lèi)型涉及明確說(shuō)明變量是什么類(lèi)型,并且在代碼執(zhí)行期間不能更改。

2014 年,PEP 484 引入了類(lèi)型提示的概念,后來(lái)在 Python 3.5 版本中引入,這些允許我們明確說(shuō)明變量應(yīng)該是什么類(lèi)型。

通過(guò)添加類(lèi)型提示,可以顯著提高代碼的可讀性。在下面的例子中,我們可以輕松得到如下信息:

  • 函數(shù)需要兩個(gè)參數(shù)
  • 文件名參數(shù)應(yīng)該是字符串類(lèi)型
  • start_depth 參數(shù)應(yīng)該是 float 類(lèi)型,默認(rèn)值為 None
  • 該函數(shù)將返回一個(gè) pandas DataFrame 對(duì)象

我們可以立即根據(jù)類(lèi)型提示準(zhǔn)確判斷函數(shù)需要什么以及它將返回什么。

3. Docstrings (Documentation Strings)

文檔字符串是緊跟在函數(shù)或類(lèi)定義之后的字符串文字,Docstrings 是一個(gè)很好的方式來(lái)詳細(xì)解釋我們的函數(shù)做什么,它需要什么參數(shù),它會(huì)引發(fā)的任何異常,它會(huì)返回什么等等。

此外,如果我們使用 Sphinx 之類(lèi)的工具為代碼創(chuàng)建在線(xiàn)文檔,則文檔字符串將自動(dòng)被拾取并轉(zhuǎn)換為適當(dāng)?shù)奈臋n。

下面的示例顯示了一個(gè)名為 clay_volume 的函數(shù)的文檔字符串。

在這里,我們可以指定每個(gè)參數(shù)是什么,這比基本的類(lèi)型提示更加詳細(xì),我們還可以包含有關(guān)函數(shù)背后的方法的更多信息,例如學(xué)術(shù)參考或方程式。

當(dāng)我們從代碼中的其他地方調(diào)用函數(shù)時(shí),擁有文檔字符串也是非常有幫助的。例如,使用 Visual Studio 編輯代碼時(shí),可以將鼠標(biāo)懸停在函數(shù)調(diào)用上,然后查看該函數(shù)的功能及其要求的彈出窗口。

如果使用 Visual Studio Code (VSCode) 來(lái)編輯我們的 Python 代碼,可以使用像 autoDocstring 這樣的擴(kuò)展插件來(lái)簡(jiǎn)化創(chuàng)建文檔字符串的過(guò)程。該插件允許我們輸入三個(gè)雙引號(hào)并自動(dòng)填充模板的其余部分,我們只需要關(guān)注必須填寫(xiě)的其他詳細(xì)信息即可。

4. Readable Variable Names

很多時(shí)候,當(dāng)我們編寫(xiě)代碼時(shí),不會(huì)太在意變量的名稱(chēng),尤其是當(dāng)我們急于完成某些功能時(shí)。但是如果我們的代碼返回一系列名為 x1 或 var123 的變量,那么可能任誰(shuí)都無(wú)法第一眼理解它們所代表的含義。

下面的示例,我們有兩個(gè)變量 f 和 d??梢酝ㄟ^(guò)查看代碼的其他部分來(lái)猜測(cè)這些含義,但這需要一定的時(shí)間,尤其是在代碼很長(zhǎng)的情況下。

如果我們?yōu)檫@些變量分配適當(dāng)?shù)拿Q(chēng),就能夠知道其中一個(gè)是由 lasio.read() 調(diào)用讀取的 data_file,并且很可能是原始數(shù)據(jù),data 變量告訴我們這是我們正在使用的實(shí)際數(shù)據(jù)。

5. Avoiding Magic Numbers

魔法數(shù)字是代碼中的值,它們背后具有很多無(wú)法解釋的含義,并且可以表示常量。在代碼中使用這些可能會(huì)導(dǎo)致歧義,尤其是對(duì)于那些不熟悉其中使用數(shù)字的任何計(jì)算的人。

此外,如果我們?cè)诙鄠€(gè)地方有相同的魔法數(shù)字并且需要更新它,我們將不得不更新它的每個(gè)實(shí)例。然而如果將數(shù)字分配給正確命名的變量,則整個(gè)過(guò)程會(huì)容易得多。

在下面的示例中,我們有一個(gè)函數(shù)計(jì)算一個(gè)名為 result 的值并將其乘以 0.6。 通過(guò)代碼我們無(wú)法準(zhǔn)確的知道該段代碼的具體含義

如果我們聲明一個(gè)變量并將該值分配給它,那么我們就有更好的機(jī)會(huì)知道它是什么。在這種情況下,它是用于將伽馬射線(xiàn)指數(shù)轉(zhuǎn)換為粘土體積的粘土與頁(yè)巖的比率。

總結(jié)

通過(guò)注釋和文檔字符串將文檔添加到我們的代碼中可以大大幫助自己和其他人了解代碼在做什么。確實(shí),一開(kāi)始可能感覺(jué)像是一件苦差事,但通過(guò)使用工具和定期練習(xí),它可以成為你的第二天性。

到此這篇關(guān)于提高Python代碼可讀性的5個(gè)技巧分享的文章就介紹到這了,更多相關(guān)Python代碼可讀性?xún)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Lombok插件安裝(IDEA)及配置jar包使用詳解

    Lombok插件安裝(IDEA)及配置jar包使用詳解

    這篇文章主要介紹了Lombok插件安裝(IDEA)及配置jar包使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • python文件處理筆記之文本文件

    python文件處理筆記之文本文件

    相信大家在測(cè)試任務(wù)過(guò)程中都或多或少遇到自己處理文本文件的情況,這篇文章主要給大家介紹了關(guān)于python文件處理筆記之文本文件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • python?random庫(kù)的簡(jiǎn)單使用demo

    python?random庫(kù)的簡(jiǎn)單使用demo

    這篇文章主要為大家介紹了python?random庫(kù)的簡(jiǎn)單使用demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Python如何在main中調(diào)用函數(shù)內(nèi)的函數(shù)方式

    Python如何在main中調(diào)用函數(shù)內(nèi)的函數(shù)方式

    這篇文章主要介紹了Python如何在main中調(diào)用函數(shù)內(nèi)的函數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • python deque模塊簡(jiǎn)單使用代碼實(shí)例

    python deque模塊簡(jiǎn)單使用代碼實(shí)例

    這篇文章主要介紹了python deque模塊簡(jiǎn)單使用代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 淺析python 定時(shí)拆分備份 nginx 日志的方法

    淺析python 定時(shí)拆分備份 nginx 日志的方法

    本文給大家分享python 定時(shí)拆分備份 nginx 日志的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-04-04
  • Python3中函數(shù)參數(shù)傳遞方式實(shí)例詳解

    Python3中函數(shù)參數(shù)傳遞方式實(shí)例詳解

    這篇文章主要介紹了Python3中函數(shù)參數(shù)傳遞方式,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python3中函數(shù)參數(shù)傳遞的常見(jiàn)操作技巧,需要的朋友可以參考下
    2019-05-05
  • OpenCV學(xué)習(xí)之圖像加噪與濾波的實(shí)現(xiàn)詳解

    OpenCV學(xué)習(xí)之圖像加噪與濾波的實(shí)現(xiàn)詳解

    這篇文章主要為大家詳細(xì)介紹了OpenCV中圖像的加噪與濾波操作的相關(guān)資料,文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-02-02
  • python Django編寫(xiě)接口并用Jmeter測(cè)試的方法

    python Django編寫(xiě)接口并用Jmeter測(cè)試的方法

    這篇文章主要介紹了python Django編寫(xiě)接口并用Jmeter測(cè)試,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python從sqlite讀取并顯示數(shù)據(jù)的方法

    python從sqlite讀取并顯示數(shù)據(jù)的方法

    這篇文章主要介紹了python從sqlite讀取并顯示數(shù)據(jù)的方法,涉及Python操作SQLite數(shù)據(jù)庫(kù)的讀取及顯示相關(guān)技巧,需要的朋友可以參考下
    2015-05-05

最新評(píng)論

永川市| 大厂| 南靖县| 衢州市| 安西县| 汶川县| 辉南县| 桑植县| 荃湾区| 安乡县| 宁海县| 兴仁县| 盐山县| 新乡市| 武冈市| 江达县| 福建省| 临邑县| 信宜市| 光山县| 游戏| 盖州市| 福建省| 买车| 南和县| 奇台县| 海兴县| 遂溪县| 泰来县| 基隆市| 安阳市| 高台县| 定日县| 舒城县| 望奎县| 肥乡县| 吴堡县| 南雄市| 太仓市| 吐鲁番市| 哈巴河县|