還在用print列印除錯,你out了

歡迎關注 “小白玩轉Python”,發現更多 “有趣”

動機

使用print來除錯程式碼,你會發現檢視終端上的許多行輸出,然後試圖找出每個輸出屬於哪些程式碼,這是一個非常繁瑣的過程。

例如執行下面的程式

輸出結果如下

這些輸出中哪一個是num1?這些輸出中哪一個是num2?兩個輸出可能不是那麼糟糕,但是如果有超過5個不同的輸出呢?試圖找到負責輸出的原始碼可能會非常耗時。

當然,可以嘗試在print語句中新增文字來進行標記,以便更容易地理解:

但同樣,輸出文字也會非常耗時。是否有一種方法可以列印負責輸出的程式碼,而不需要輸出額外的文字呢?

這就是冰淇淋派上用場的時候了!

什麼是冰淇淋?

Icecream是一個Python庫,可透過最少的程式碼使列印除錯更具可讀性。

使用下面的程式碼安裝冰淇淋

讓我們透過列印Python函式的輸出來進行嘗試。

還在用print列印除錯,你out了

透過使用ic,我們不僅可以看到輸出,還可以看到函式及其引數!多麼方便!終端中的顏色也將與上面顯示的輸出一樣多彩。

檢查執行情況

要查詢程式碼執行的位置,可以執行下面所示的操作,以查詢執行的語句。

透過執行ic()而不需要額外的文字,Icecream可以讓您更容易地完成上面的工作。

還在用print列印除錯,你out了

現在就可以知道函式hello中的第5行的程式碼已執行,而第7行的程式碼未執行。

自定義字首

如果想要插入一個自定義字首,例如對print語句執行程式碼的時間,那麼icecream也允許這樣做。

還在用print列印除錯,你out了

現在程式碼執行的時間會自動顯示在輸出中!是不是超酷的!

獲得更多的上下文資訊

除了瞭解負責輸出的程式碼之外,你可能還想知道程式碼執行的行和檔案來自哪個行。要了解程式碼的上下文,只需要將includeecontext = True新增到ic。configureOutput ()中即可。

還在用print列印除錯,你out了

現在就可以知道第一個輸出是由icecream_example。py檔案中的第7行的plus_five函式執行的。

總結

現在我們已經學會了如何使用icecream使列印更具可讀性。Icecream是一個很好的除錯工具,希望你也會發現它的高效。

· END ·

HAPPY LIFE

TAG: 輸出程式碼程式碼執行執行Python