全網最適合入門的物件導向程式設計教程:13 類和物件的Python實現-視覺化閱讀程式碼神器Sourcetrail的安裝使用

FreakStudio發表於2024-07-11

全網最適合入門的物件導向程式設計教程:13 類和物件的 Python 實現-視覺化閱讀程式碼神器 Sourcetrail 的安裝使用

摘要:

本文主要介紹了視覺化閱讀程式碼神器Sourcetrail的安裝與使用,包括軟體簡介和特性、下載地址、安裝方式、新建工程和如何檢視分析原始碼,同時簡單介紹了PyCharm中Sourcetrail外掛的使用。

原文連結:

FreakStudio 的部落格

往期推薦:

學嵌入式的你,還不會物件導向??!

全網最適合入門的物件導向程式設計教程:00 物件導向設計方法導論

全網最適合入門的物件導向程式設計教程:01 物件導向程式設計的基本概念

全網最適合入門的物件導向程式設計教程:02 類和物件的 Python 實現-使用 Python 建立類

全網最適合入門的物件導向程式設計教程:03 類和物件的 Python 實現-為自定義類新增屬性

全網最適合入門的物件導向程式設計教程:04 類和物件的Python實現-為自定義類新增方法

全網最適合入門的物件導向程式設計教程:05 類和物件的Python實現-PyCharm程式碼標籤

全網最適合入門的物件導向程式設計教程:06 類和物件的Python實現-自定義類的資料封裝

全網最適合入門的物件導向程式設計教程:07 類和物件的Python實現-型別註解

全網最適合入門的物件導向程式設計教程:08 類和物件的Python實現-@property裝飾器

全網最適合入門的物件導向程式設計教程:09 類和物件的Python實現-類之間的關係

全網最適合入門的物件導向程式設計教程:10 類和物件的Python實現-類的繼承和里氏替換原則

全網最適合入門的物件導向程式設計教程:11 類和物件的Python實現-子類呼叫父類方法

全網最適合入門的物件導向程式設計教程:12 類和物件的Python實現-Python使用logging模組輸出程式執行日誌

更多精彩內容可看:

給你的 Python 加加速:一文速通 Python 平行計算

一文搞懂 CM3 微控制器除錯原理

肝了半個月,嵌入式技術棧大彙總出爐

電子計算機類比賽的“武林秘籍”

一個MicroPython的開源專案集錦:awesome-micropython,包含各個方面的Micropython工具庫

文件和程式碼獲取:

可訪問如下連結進行對文件下載:

https://github.com/leezisheng/Doc

image

本文件主要介紹如何使用 Python 進行物件導向程式設計,需要讀者對 Python 語法和微控制器開發具有基本瞭解。相比其他講解 Python 物件導向程式設計的部落格或書籍而言,本文件更加詳細、側重於嵌入式上位機應用,以上位機和下位機的常見串列埠資料收發、資料處理、動態圖繪製等為應用例項,同時使用 Sourcetrail 程式碼軟體對程式碼進行視覺化閱讀便於讀者理解。

相關示例程式碼獲取連結如下:https://github.com/leezisheng/Python-OOP-Demo

正文

這裡,我們可以使用 Sourcetrail 軟體對程式碼進行視覺化閱讀。Sourcetrail 是一個免費開源、跨平臺的視覺化原始碼探索專案,可以使用圖形直觀地表示了呼叫上游和下游,類成員列表等等細節,使得理解原始碼的結構變得很容易。下圖是我們用 Sourcetrail 分析示例程式碼得到的圖形化類圖,可以很容易的看出 SerialClass 和 SensorClass、MasterClass 間的繼承關係以及每個類的方法和屬性:

image

關於 Sourcetrail 的下載安裝可以檢視:

https://github.com/CoatiSoftware/Sourcetrail/releases

我們選擇 Sourcetrail_2021_4_19_Windows_64bit_Installer.zip 版本進行下載,下載安裝包解壓後,可以看到有一個 msi 檔案,雙擊安裝即可:

image

image

如果安裝過程中遇到錯誤程式碼 2053 提示,檢視以下連結解決:

https://zhuanlan.zhihu.com/p/356008224

接下來我們來看如何用 sourcetrail 分析原始碼,開啟 sourcetrail 軟體,首先點選新建工程:

image

接著填寫專案名稱和需要解析檔案的地址:

image

接著點選新增原始碼組:

image

選擇 Python 檔案,建立空的原始碼分析組,點選 next:

image

按照下圖所示填寫資訊即可:

image

這裡,使用虛擬環境的同學可以使用 conda env list 獲取虛擬環境直譯器位置:

image

配置好後點選建立:

image

開始建立,注意一定要勾選 shallow python index 選項,點選開始:

image

這裡,可以看到我們的分析結果,Sourcetrail 將解析結果按“檔案”、“模組”等大致分了類,可以極大便利我們閱讀他人程式碼的工作。點選 classes:

image

可以看到我們檔案中包含哪些類:

image

點選 SerialClass 類可以看檢視屬性和方法,右邊有對應原始碼:

image

點選任意方法,可以看到該方法的呼叫情況:

image

專案中的符號都可以點選,支援來回跳轉,還支援模糊搜尋。左側原始碼結構非常清晰,對於熟悉陌生程式碼結構非常有用。

image

我們也可以在 Pycharm 中安裝外掛 idea-sourcetrail 與其配合使用,sourcetrail 支援跟你喜歡的程式碼編輯器連結,在編輯器中右鍵,就能啟用 sourcetrail 檢視上下視覺化內容。當然也可以反過來,在 sourcetrail 中點選,直接可以在編輯器中編輯該檔案。

image

點選安裝並應用,重啟 IDE。具體使用可以參考:

https://cloud.tencent.com/developer/news/594864

Sourcetrail 還可以與其他編輯器連結,比如: Atom, Clion, Eclipse, Emacs, IntelliJ IDEA 等等。還有更多功能可以參見官方文件:

https://www.sourcetrail.com/python/

實際上這類原始碼分析工具還有很多,比如 Source Insight 和 Understand。

image

相關文章