icecream是乙個python第三方庫,可通過最少的**使列印除錯更清晰明了。你可以直接使用pip install icecream
來進行安裝。
from icecream import ic
num1 = 20
num2 = 30
ic(num1)
ic(num2)
程式輸出結果為:
ic| num1: 20
ic| num2: 30
我們可以很清楚的知道呼叫結果。
from icecream import ic
def plus_five(a):
return a+5
ic(plus_five(12))
ic(plus_five(2))
程式輸出結果為:
ic| plus_five(12): 17
ic| plus_five(2): 7
如果你想要找到執行**的位置,可以通過執行如下所示的操作,來查詢執行了哪個語句。
from icecream import ic
def hello(user):
if user:
ic()
else:
ic()
ic(hello(true))
程式輸出結果為:
ic| tmp.py:11 in hello() at 07:52:13.836
ic| hello(true): none
從結果中我們看到,第11行的**已經被執行了。
如果您想在列印語句中插入自定義字首(例如**執行時間),icecream也是能實現的。
from datetime import datetime
from icecream import ic
import time
from datetime import datetime
def time_format():
return f'|> '
ic.configureoutput(prefix=time_format)
for _ in range(3):
time.sleep(1)
ic('hello')
程式輸出結果為:
2021-02-10 15:59:18.142344|> 'hello'
2021-02-10 15:59:19.190267|> 'hello'
2021-02-10 15:59:20.205576|> 'hello'
除了知道和輸出相關的**之外,你可能還想知道**執行的行和**檔案。
在ic.configureoutput()中,設定includeecontext的引數值為true即可。
from icecream import ic
def plus_five(num):
return num + 5
ic.configureoutput(includecontext=true)
ic(plus_five(4))
ic(plus_five(5))
程式輸出結果為:
ic| tmp.py:13 in - plus_five(4): 9
ic| tmp.py:14 in - plus_five(5): 10
詳解Python除錯神器之PySnooper
相信很多程式設計師在除錯 時,都用過 print。少還好說,如果是大型專案,面對眾多 print 的輸出結果,可能要頭大了。今天推薦乙個 github 熱門開源專案 pysnooper。該專案推出的第一天就收穫 2000 star,登上了 github 日榜第一位,如今有近 15k star。可見這...
你必須擁有的Python除錯神器
今天推薦乙個python除錯工具可以讓你的除錯更快更方便,叫ipdb。知道的朋友都知道我一般操作就是pycharm vim的模式,原因我解釋過了,既能使用vim編輯器之神的配置,也能用到pycharm這種ide的方便。安裝使用一般就是 pip install ipdb,相信大家沒啥問題,這裡我們可以...
bug除錯,神器再現
現在主要負責stb軟體的除錯,上次在st 平台出現乙個問題,定位了好久,現在想拿出來共大家分享,除錯過程 問題描述 除錯過程 一開始沒有懷疑st的問題,因為st則個版本畢竟已經出過很多貨了,就一直以為是上層應用寫得不規範,試圖修改上層應用解決該問題,嘗試了很多種方法都無效果 看來只有使用神器了,當出...