最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python工具PDB調(diào)試器的使用方法詳解

 更新時(shí)間:2023年11月03日 08:58:50   作者:郝同學(xué)的測開筆記  
還記得你是如何進(jìn)行代碼調(diào)試的嗎?有人會(huì)說,我是添加一些輸出語句,有人說,我是使用IDE自帶的設(shè)置斷點(diǎn)功能,當(dāng)然都沒有錯(cuò),只是看哪個(gè)更合適,更能提升效率,但這都不是我們今天講的重點(diǎn),今天的重點(diǎn)是Python中PDB調(diào)試器的使用方法,需要的朋友可以參考下

pdb重要嗎?

當(dāng)然很重要。前言中提到的打印,確實(shí)是調(diào)試程序的常用手段,但是這只局限于小型程序,如果對(duì)于一個(gè)很大的程序,那每次都要運(yùn)行整個(gè)程序才能看到打印的值,顯然是我們不能接受的。對(duì)于IDE提供的斷點(diǎn)功能確實(shí)很方便,但是對(duì)于一些vim黨來說就的另尋方案了。 Python 的 pdb,正是其自帶的一個(gè)調(diào)試庫。它為 Python 程序提供了交互式的源代碼調(diào)試功能,是命令行版本的 IDE 斷點(diǎn)調(diào)試器,完美地解決了我們剛剛討論的這個(gè)問題。

pdb介紹

源碼:Lib/pdb.py

pdb模塊定義了一個(gè)交互式源代碼調(diào)試器,用于 Python 程序。它支持在源碼行間設(shè)置(有條件的)斷點(diǎn)和單步執(zhí)行,檢視堆棧幀,列出源碼列表,以及在任何堆棧幀的上下文中運(yùn)行任意 Python 代碼。它還支持事后調(diào)試,可以在程序控制下調(diào)用。

如何使用pdb?

啟動(dòng) PDB 調(diào)試器

要在 Python 代碼中啟動(dòng) PDB 調(diào)試器,需要在需要調(diào)試的代碼行上加入 import pdb; pdb.set_trace() 代碼。這樣,在運(yùn)行代碼時(shí),程序?qū)?huì)在此處暫停,并啟動(dòng) PDB 調(diào)試器。

例如,以下代碼演示了如何使用 PDB 調(diào)試器調(diào)試 Python 代碼:

import pdb
?
def add_numbers(a, b):
 ? ?pdb.set_trace()
 ? ?return a + b
?
result = add_numbers(5, 10)
print(result)

在執(zhí)行以上代碼時(shí),當(dāng)程序執(zhí)行到 pdb.set_trace() 時(shí),程序?qū)?huì)暫停,并啟動(dòng) PDB 調(diào)試器。此時(shí),你可以輸入命令來查看變量、檢查堆棧、單步執(zhí)行代碼等。

當(dāng)然,還有另一種方式,像這樣:

def add_numbers(a, b):
 ? ?breakpoint()
 ? ?return a + b
?
result = add_numbers(5, 10)
print(result)

3.7 新版功能: 內(nèi)置函數(shù) breakpoint(),當(dāng)以默認(rèn)參數(shù)調(diào)用它時(shí),可以用來代替 import pdb; pdb.set_trace()。

如果你是想通過命令行來啟動(dòng),當(dāng)然也是支持的,像這樣

python3 -m pdb pdb_demo.py

基本的 PDB 命令

在 PDB 調(diào)試器中,有許多命令可以使用。以下是一些最常用的 PDB 命令:

  • n(ext):單步執(zhí)行代碼
  • s(tep):進(jìn)入子函數(shù)或方法
  • r(eturn):執(zhí)行代碼直到當(dāng)前函數(shù)返回
  • c(ontinue):繼續(xù)執(zhí)行代碼直到下一個(gè)斷點(diǎn)或程序結(jié)束
  • l(ist):顯示當(dāng)前代碼段周圍的源代碼
  • p:打印變量的值
  • h(elp):查看幫助信息
  • b(reak): 設(shè)置斷點(diǎn)。比如b 10,在第10行設(shè)置一個(gè)斷點(diǎn) 。行號(hào)可以加上文件名和冒號(hào)作為前綴,以在另一個(gè)文件中設(shè)置一個(gè)斷點(diǎn)。
  • c l(ear): 清楚斷點(diǎn)
  • q(uit):退出調(diào)試器。 被執(zhí)行的程序?qū)⒈恢兄埂?/li>
  • restart :重啟被調(diào)試的 Python 程序。

使用 PDB 調(diào)試器調(diào)試 Python 代碼

在使用 PDB 調(diào)試器調(diào)試 Python 代碼時(shí),以下是一些常用的技巧:

  • 在使用 n(ext)s(tep) 命令時(shí),可以在命令后加上數(shù)字,以指定要執(zhí)行多少次代碼。例如,使用 n 3 命令將會(huì)執(zhí)行下三行代碼。
  • 在使用 l(ist) 命令時(shí),可以在命令后加上代碼行號(hào),以指定要顯示哪一段源代碼。例如,使用 l 5,10 命令將會(huì)顯示第 5 行到第 10 行的代碼。
  • 在使用 p 命令時(shí),可以打印表達(dá)式的值,并以逗號(hào)分隔打印多個(gè)表達(dá)式的值。例如,使用 p a, b, c 命令將會(huì)打印變量 a、b 和 c 的值。
  • 在使用 PDB 調(diào)試器時(shí),你可以使用 ! 命令執(zhí)行 Python 表達(dá)式。例如,使用 !a + b 命令將會(huì)計(jì)算 a + b 的值。

最后

在 Python 開發(fā)過程中,PDB 調(diào)試器是一個(gè)非常有用的工具,它可以幫助你快速定位和解決代碼中的問題。除了這些常用命令,還有許多其他的命令可以使用,這里就不在一一贅述了。你可以參考對(duì)應(yīng)的官方文檔(https://docs.python.org/3/library/pdb.html#module-pdb),來熟悉這些用法。

以上就是Python中PDB調(diào)試器的使用方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Python PDB調(diào)試器用法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python_array[0][0]與array[0,0]的區(qū)別詳解

    python_array[0][0]與array[0,0]的區(qū)別詳解

    今天小編就為大家分享一篇python_array[0][0]與array[0,0]的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python中針對(duì)函數(shù)處理的特殊方法

    Python中針對(duì)函數(shù)處理的特殊方法

    Python內(nèi)置了一些非常有趣但非常有用的函數(shù),充分體現(xiàn)了Python的語言魅力
    2014-03-03
  • Python生成圖文并茂的PDF報(bào)告的方法詳解

    Python生成圖文并茂的PDF報(bào)告的方法詳解

    reportlab是Python的一個(gè)標(biāo)準(zhǔn)庫,可以畫圖、畫表格、編輯文字,最后可以輸出PDF格式。本文將利用reportlab模塊生成圖文并茂的PDF報(bào)告,感興趣的可以了解一下
    2022-06-06
  • python數(shù)據(jù)分析之DataFrame內(nèi)存優(yōu)化

    python數(shù)據(jù)分析之DataFrame內(nèi)存優(yōu)化

    pandas處理幾百兆的dataframe是沒有問題的,但是我們?cè)谔幚韼讉€(gè)G甚至更大的數(shù)據(jù)時(shí),就會(huì)特別占用內(nèi)存,對(duì)內(nèi)存小的用戶特別不好,所以對(duì)數(shù)據(jù)進(jìn)行壓縮是很有必要的,本文就介紹了python DataFrame內(nèi)存優(yōu)化,感興趣的可以了解一下
    2021-07-07
  • Python將二維列表list的數(shù)據(jù)輸出(TXT,Excel)

    Python將二維列表list的數(shù)據(jù)輸出(TXT,Excel)

    這篇文章主要介紹了Python將二維列表list的數(shù)據(jù)輸出(TXT,Excel),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python圖像處理之顏色的定義與使用分析

    Python圖像處理之顏色的定義與使用分析

    這篇文章主要介紹了Python圖像處理之顏色的定義與使用,結(jié)合實(shí)例形式分析了matplotlib模塊中顏色值的相關(guān)使用操作技巧,需要的朋友可以參考下
    2019-01-01
  • 幾種實(shí)用的pythonic語法實(shí)例代碼

    幾種實(shí)用的pythonic語法實(shí)例代碼

    在我理解,Pythonic 就是很 Python 的 Python 代碼。下面這篇文章主要給大家分享介紹了幾種實(shí)用的pythonic語法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-02-02
  • 使用Python搭建輕量級(jí)靜態(tài)網(wǎng)頁服務(wù)器的示例詳解

    使用Python搭建輕量級(jí)靜態(tài)網(wǎng)頁服務(wù)器的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何使用Python搭建一個(gè)輕量級(jí)靜態(tài)網(wǎng)頁服務(wù)器,零基礎(chǔ)也能實(shí)現(xiàn)的Web開發(fā)初體驗(yàn),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-07-07
  • Python Threading 線程/互斥鎖/死鎖/GIL鎖

    Python Threading 線程/互斥鎖/死鎖/GIL鎖

    這篇文章主要介紹了Python Threading 線程/互斥鎖/死鎖/GIL鎖的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python輸出決策樹圖形的例子

    python輸出決策樹圖形的例子

    今天小編就為大家分享一篇python輸出決策樹圖形的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08

最新評(píng)論

西和县| 双峰县| 西林县| 普安县| 河间市| 镇安县| 聂荣县| 九台市| 金塔县| 全椒县| 夏河县| 分宜县| 来宾市| 金秀| 电白县| 泾川县| 绩溪县| 遂平县| 万盛区| 玛纳斯县| 神木县| 闸北区| 逊克县| 九江县| 奉新县| 怀远县| 合川市| 开平市| 海宁市| 社旗县| 黎川县| 阿合奇县| 沅陵县| 奈曼旗| 合作市| 大理市| 沂水县| 天气| 温泉县| 休宁县| 镇坪县|