我是寫python 萬年的 PRint + type + # 的調試黨。
最近在知乎上讀到了Rui L的一個調試python的方法。
在介紹之前,請先自行腦補一個場景:
應該用過 ipython 吧?想象一下,拋出異常時自動把你帶到 IPython Shell 是不是很開心?而且和普通的IPython不同,這個時候可以調用 p (print), up(up stack), down(down stack) 之類的命令。還能創建臨時變量,執行任意函數。
事實上這是可以實現的, 而且很簡單,不過你要先安裝 IPython。然后把以下代碼保存為crash_on_ipy.py
import sysclass ExceptionHook: instance = None def __call__(self, *args, **kwargs): if self.instance is None: from IPython.core import ultratb self.instance = ultratb.FormattedTB(mode='Plain', color_scheme='linux', call_pdb=1) return self.instance(*args, **kwargs)sys.excepthook = ExceptionHook()然后在你的項目代碼某個地方 import crash_on_ipy 就可以了。
新聞熱點
疑難解答