<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
不知道小夥伴們是否有這樣的困惑,當我們回顧自己 6 個月前編寫的一些程式碼時,往往會看的一頭霧水,或者是否當我們接手其他人的程式碼時,
Python 中有許多方法可以幫助我們理解程式碼的內部工作原理,良好的程式設計習慣,可以使我們的工作事半功倍!
例如,我們最終可能會得到看起來很像下圖中的程式碼。雖然不是最糟糕的,但是,我們需要擴充套件一些事情,例如:
在本文中,我們將著重討論如何通過檔案、提示輸入和正確的變數名稱來提高應用程式/指令碼的可讀性的五個基本技巧。
我們可以對我們的程式碼做的第一件事是為我們的程式碼新增某些註釋,但是卻不能過度使用它。註釋應該告訴你為什麼程式碼可以工作或者為什麼某事以某種方式完成,而不是它是如何工作的。
Python 中的註釋通常使用井號 (#) 來完成,並且可以跨越單行或多行。
# Comment using the hashtag # Another comment using the hashtag
對於多行註釋,我們也可以使用三個雙引號。
""" This is an example of a multi-line comment """
在下面的範例中,程式碼中新增了一些註釋,以解釋某些程式碼行背後的工作流程和推理
Python 語言是動態型別的,這意味著變數型別只會在執行時檢查。此外,變數可以在程式碼執行期間更改型別。
另一方面,靜態型別涉及明確說明變數是什麼型別,並且在程式碼執行期間不能更改。
2014 年,PEP 484 引入了型別提示的概念,後來在 Python 3.5 版本中引入,這些允許我們明確說明變數應該是什麼型別。
通過新增型別提示,可以顯著提高程式碼的可讀性。在下面的例子中,我們可以輕鬆得到如下資訊:
我們可以立即根據型別提示準確判斷函數需要什麼以及它將返回什麼。
檔案字串是緊跟在函數或類定義之後的字串文字,Docstrings 是一個很好的方式來詳細解釋我們的函數做什麼,它需要什麼引數,它會引發的任何異常,它會返回什麼等等。
此外,如果我們使用 Sphinx 之類的工具為程式碼建立線上檔案,則檔案字串將自動被拾取並轉換為適當的檔案。
下面的範例顯示了一個名為 clay_volume
的函數的檔案字串。
在這裡,我們可以指定每個引數是什麼,這比基本的型別提示更加詳細,我們還可以包含有關函數背後的方法的更多資訊,例如學術參考或方程式。
當我們從程式碼中的其他地方呼叫函數時,擁有檔案字串也是非常有幫助的。例如,使用 Visual Studio 編輯程式碼時,可以將滑鼠懸停在函數呼叫上,然後檢視該函數的功能及其要求的彈出視窗。
如果使用 Visual Studio Code (VSCode) 來編輯我們的 Python 程式碼,可以使用像 autoDocstring 這樣的擴充套件外掛來簡化建立檔案字串的過程。該外掛允許我們輸入三個雙引號並自動填充模板的其餘部分,我們只需要關注必須填寫的其他詳細資訊即可。
很多時候,當我們編寫程式碼時,不會太在意變數的名稱,尤其是當我們急於完成某些功能時。但是如果我們的程式碼返回一系列名為 x1 或 var123 的變數,那麼可能任誰都無法第一眼理解它們所代表的含義。
下面的範例,我們有兩個變數 f 和 d。可以通過檢視程式碼的其他部分來猜測這些含義,但這需要一定的時間,尤其是在程式碼很長的情況下。
如果我們為這些變數分配適當的名稱,就能夠知道其中一個是由 lasio.read() 呼叫讀取的 data_file,並且很可能是原始資料,data 變數告訴我們這是我們正在使用的實際資料。
魔法數位是程式碼中的值,它們背後具有很多無法解釋的含義,並且可以表示常數。在程式碼中使用這些可能會導致歧義,尤其是對於那些不熟悉其中使用數位的任何計算的人。
此外,如果我們在多個地方有相同的魔法數位並且需要更新它,我們將不得不更新它的每個範例。然而如果將數位分配給正確命名的變數,則整個過程會容易得多。
在下面的範例中,我們有一個函數計算一個名為 result 的值並將其乘以 0.6。 通過程式碼我們無法準確的知道該段程式碼的具體含義
如果我們宣告一個變數並將該值分配給它,那麼我們就有更好的機會知道它是什麼。在這種情況下,它是用於將伽馬射線指數轉換為粘土體積的粘土與頁岩的比率。
通過註釋和檔案字串將檔案新增到我們的程式碼中可以大大幫助自己和其他人瞭解程式碼在做什麼。確實,一開始可能感覺像是一件苦差事,但通過使用工具和定期練習,它可以成為你的第二天性。
到此這篇關於提高Python程式碼可讀性的5個技巧分享的文章就介紹到這了,更多相關Python程式碼可讀性內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45