日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

一个神级般的 Python 调试神器

發布時間:2024/9/15 python 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个神级般的 Python 调试神器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

賈浩楠 發自 凹非寺 ,? 量子位 報道

寫代碼時提筆千行,debug時卻低效抓狂……

幾乎每個編程者都逃不了這樣的糾結。

通過編譯器一行行地去找bug,太浪費時間。

所以,一位清華校友、谷歌工程師laike9m,便開發了一個強大的Python調試工具Cyberbrain:能夠詳細記錄項目數據流、變量、狀態等等關鍵信息。

并且,結果還會以直觀簡潔的可視化圖片呈現。

有了這個神器,今后debug也會和寫代碼一樣流暢高效。

“賽博大腦”幫你debug

平常你的程序中出現bug時會怎么辦?

最常規的辦法是用調試器,但是你能記住程序中每個步驟發生什么了嗎?

這就是傳統方法的缺點:調試信息無法持久化,要靠程序員去記住它們。

這款名叫Cyberbrain(賽博大腦)的強大的工具,最亮眼的功能,是回溯代碼中的變量更改歷史,查看程序執行的狀態。

所以,在你調試程序或debug時,不需要費幾個小時用編譯器逐行執行。

Cyberbrain會清晰的告訴你流程中都發生過什么

Cyberbrain能顯示準確的數據流,并保留程序的每個狀態。程序員不僅不需要記住任何內容,甚至不需要逐步執行程序,這可以節省大量調試時間。

比方說,你想找出為什么返回值是錯誤的。通過看圖,就可以對導致返回值的原因有了一個大概的了解。

接下來,將鼠標懸停在 “返回 “節點上,所有相關的值都顯示出來了,形成了一個從函數開始到結束的跟蹤路徑:

只要動動鼠標就能找到問題,誰還會去用麻煩的編譯器呢?

除了流程和變量跟蹤,賽博大腦還能對目標進行檢查。

如果現在有一個大列表,但它無法與圖匹配,如何使用工具來檢查它的值?

啟動后,Cyberbrain會自動打開一個devtools窗口。

當你把鼠標懸停在一個變量上時,它的值就會被記錄在devtools控制臺中。

所以在這種情況下,雖然沒有足夠的空間在跟蹤圖中顯示整個列表,但你仍然可以從devtools中檢查它的值。

幾乎所有的Python調試器(PyCharm、VS Code等)都會截斷參數,無法顯示一個大列表中的每個元素,但Cyberbrain不會這樣做,除非你明確告訴它。

最后,Cyberbrain還能讓用戶在debug的同時,設置循環計數器。

[]

如何安裝使用

Cyberbrain由一個Python庫和各種編輯器/IDE集成組成。目前它支持 VS Code 和 Gitpod。

安裝只需要通過一句話指令:

pip?install?Cyberbraincode?—install-extension?laike9m.Cyberbrain

同時,作者還提供了在線版的Cyberbrain,可以直接試用:

https://gitpod.io/#snapshot/91475a9d-4ccf-420a-b0ee-11db084ce689

在使用過程中,假如你想追蹤一個函數“foo”,可以使用**@trace**指令實現:

from?Cyberbrain?import?trace#?As?of?now,?you?can?only?have?one?@trace?decorator?in?the?whole?program.#?We?may?change?this?in?version?2.0,?see?https://github.com/laike9m/Cyberbrain/discussions/73@trace??#?Disable?tracing?with?`@trace(disabled=True)`def?foo():

Cyberbrain可以保持你的工作流程不變。運行一個程序(從 vscode 或命令行,都可以),一個新的面板將被打開,程序執行情況全部以可視化展示:

使用Cyberbrain,還有幾點需要注意。

首先是可能會與其他調試器發生沖突。如果你設置了斷點并使用VSC的調試器,Cyberbrain可能無法正常工作。一般來說,首選 “不調試運行”。

而當你的程序中有多個裝飾器(decorator)時,應該將@trace設置為最底層的那個。

此外,目前Cyberbrain還不支持多線程代碼。

作者介紹

作者laike9m,谷歌軟件工程師,目前全職開發Cyberbrain工具。

laike9m是清華校友,在博客中自述曾擔任清華大學推理協會會長。此外還是重度二次元愛好者。

除了Cyberbrain,他還組織了一檔播客節目,名字叫捕蛇者說,Pythonhunter。

圖片: https://uploader.shimo.im/f/Ks0rqxVvzEZrPsfE.png

Cyberbrain項目地址:https://github.com/laike9m/Cyberbrain

laike9m主頁:https://laike9m.com/blog/

播客地址:https://pythonhunter.org/

推薦閱讀

誤執行了rm -fr /*之后,除了跑路還能怎么辦?!

程序員必備58個網站匯總

大幅提高生產力:你需要了解的十大Jupyter Lab插件

總結

以上是生活随笔為你收集整理的一个神级般的 Python 调试神器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。