簡體   English   中英

Python:未處理的異常后如何控制命名空間?

[英]Python: how to control namespace after an unhandled exception?

有沒有辦法控制在未處理的異常之后你最終會進入哪個命名空間?

例如,在 IPython 提示符下,對包含以下內容的文件run myscript.py

def spam():
    ham = "ham"
    crash = 1/0
    eggs = "eggs"

if __name__ == '__main__':
    foo = "foo"
    spam()

它因零除法而崩潰,並返回到 IPython 提示符,現在名稱空間中有foo ,但沒有ham 對於一些事后檢查,我想返回 function spam()的 scope 中的解釋器(即ham可用, eggsfoo不可用)。

我們可以使用pdb.set_trace()訪問這些內容並重新運行代碼,但如果有一個快捷方式可以退回一幀,那就太好了。

您可以通過鍵入%pdb在 ipython 提示符中啟用 pdb 的自動調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM