分類

展開全部 | 收合全部

分類

展開全部 | 收合全部

【Python】python debug 自用方法整理筆記

Basic

debug in code – print 大法

print.

延伸 – f-string format

print(f"{target=}")

可以輸出 target=<traget實際值>

debug with IDE – VScode debugger

debugger, variable, watch, call stack 都看

debug with IDE – VScode 中斷點

中斷點

Advanced

Advanced – try except

try:
    pass
except:
    print("stop")

下中斷點於 gotcha, 當 pass 會經過很多輪時非常好用.

Advanced – magic (dunder) methods

改天會在寫 magic (dunder) methods 是什麼

註:dunder = double under

print(f"[{__class__}]{a=}")

在超級多檔案時,可以快速定位「哪個檔案 -> class」,超好用
至於我也想定位到 function,但目前好像沒有簡單的方法…

另外 _ _ name _ _ 、 _ _ qualname _ _ 有時候 debug 也好用。
只想要找檔案不想要找 class name (比較短),就用 name,

qualname 雖然可以顯示 function name,但他的 object 要是 function…
例如 obj.qualname (自行補上雙底線),我覺得有點不是那麼方便,
畢竟這樣我早就知道他的 function name 了,還需要問嗎…

Advanced – conditional 中斷點

於中斷點按右鍵,可設定條件式

Tools

Tools – logger

待補

Tools – file dump

當資訊過多導致 debugger 跑不太動時,直接存到檔案內

def dump_debug_str(data, filename):
    print(f"saving {filename} with data...")
    with open(filename, "w") as f_write:
        f_write.write(str(data))
Howard Weng
Howard Weng

我是 Howard Weng,很多人叫我嗡嗡。這個網站放了我的各種筆記。希望這些筆記也能順便幫助到有需要的人們!如果文章有幫助到你的話,歡迎幫我點讚哦!
另外,因為定位是「個人的隨手筆記」,有些文章內容「⚠️可能我理解有誤⚠️」或「?只寫到一半?」,如果有發現這樣的情況,歡迎在該文章的最下面留言提醒我!我會儘快修正或補上!感謝大家的建議與幫忙,讓網站能變得更好?

文章: 889

★留個言吧!內容有誤或想要補充也歡迎與我討論!