中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python調試模塊ipdb怎么使用

發布時間:2023-03-16 11:50:38 來源:億速云 閱讀:130 作者:iii 欄目:開發技術

本篇內容主要講解“python調試模塊ipdb怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python調試模塊ipdb怎么使用”吧!

1. 調試python

ipdb是用來python中用以交互式debug的模塊,可以直接利用pip安裝;

其功能類似于pycharm中 python控制臺,
而使用ipdb 的優點,便是直接在代碼中調試,
避免了在python控制臺,或者重新設置一些簡單變量。

python調試模塊ipdb怎么使用

pip install ipdb

1.1 使用ipdb

當程序運行到ipdb.set_trace()的地方會自動進入debug模式。

for i in range(5):
    print(i)
    ipdb.set_trace()

1.2 常用命令

n→ \to→next
ENTER→ \to→重復上次命令
q→ \to→退出
p<變量>&rarr; \to&rarr;打印變量
c&rarr; \to&rarr;繼續
l&rarr; \to&rarr;查找當前位于哪里
s&rarr; \to&rarr;進入子程序
r&rarr; \to&rarr;運行直到子程序結束

命令式
上面的方法很方便,但是也有不靈活的缺點。對于一段比較棘手的代碼,我們可能需要按步執行,邊運行邊跟蹤代碼流并進行調試,這時候使用交互式的命令式調試方法更加有效。啟動IPDB調試環境的方法也很簡單:

python -m ipdb your_code.py
常用命令
IPDB調試環境提供的常見命令有:

幫助
使用h即可調出IPDB的幫助。可以使用help command的方法查詢特定命令的具體用法。

下一條語句
使用n(next)執行下一條語句。注意一個函數調用也是一個語句。如何能夠實現類似“進入函數內部”的功能呢?

進入函數內部
使用s(step into)進入函數調用的內部。

打斷點
使用b line_number(break)的方式給指定的行號位置加上斷點。使用b file_name:line_number的方法給指定的文件(還沒執行到的代碼可能在外部文件中)中指定行號位置打上斷點。

另外,打斷點還支持指定條件下進入,可以查詢幫助文檔。

一直執行直到遇到下一個斷點
使用c(continue)執行代碼直到遇到某個斷點或程序執行完畢。

一直執行直到返回
使用r(return)執行代碼直到當前所在的這個函數返回。

跳過某段代碼
使用j line_number(jump)可以跳過某段代碼,直接執行指定行號所在的代碼。

更多上下文
在IPDB調試環境中,默認只顯示當前執行的代碼行,以及其上下各一行的代碼。如果想要看到更多的上下文代碼,可以使用l first[, second](list)命令。

其中first指示向上最多顯示的行號,second指示向下最多顯示的行號(可以省略)。當second小于first時,second指的是從first開始的向下的行數(相對值vs絕對值)。

根據SO上的這個問題,你還可以修改IPDB的源碼,一勞永逸地改變上下文的行數。

我在哪里
調試興起,可能你會忘了自己目前所在的行號。例如在打印了若干變量值后,屏幕完全被這些值占據。使用w或者where可以打印出目前所在的行號位置以及上下文信息。

這是啥
我們可以使用whatis variable_name的方法,查看變量的類別(感覺有點雞肋,用type也可以辦到)。

列出當前函數的全部參數
當你身處一個函數內部的時候,可以使用a(argument)打印出傳入函數的所有參數的值。

打印
使用p(print)和pp(pretty print)可以打印表達式的值。

清除斷點
使用cl或者clear file:line_number清除斷點。如果沒有參數,則清除所有斷點。

再來一次
使用restart重新啟動調試器,斷點等信息都會保留。restart實際是run的別名,使用run args的方式傳入參數。

退出
使用q退出調試,并清除所有信息。

當然,這并不是IPDB的全部。其他的命令還請參照幫助文檔。文檔在手,天下我有!

到此,相信大家對“python調試模塊ipdb怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广平县| 焉耆| 峨边| 项城市| 曲水县| 尖扎县| 玉门市| 砚山县| 福鼎市| 太保市| 临江市| 佛学| 亳州市| 康乐县| 松江区| 同心县| 柏乡县| 巴彦淖尔市| 合作市| 通州区| 泰宁县| 上饶市| 增城市| 惠东县| 沂南县| 临邑县| 富裕县| 苏尼特右旗| 泰兴市| 湘西| 镇平县| 东兰县| 安达市| 宣化县| 化州市| 洪泽县| 会东县| 邵东县| 平塘县| 吉隆县| 娱乐|