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

Python使用pdb調(diào)試代碼的技巧

 更新時(shí)間:2020年05月03日 10:28:51   作者:吾非同  
Pdb就是Python debugger,是python自帶的調(diào)試器。這篇文章主要介紹了Python使用pdb調(diào)試代碼的技巧,需要的朋友可以參考下

什么是pdb

不知道大家在用Python寫代碼出現(xiàn)報(bào)錯(cuò)時(shí)是怎樣調(diào)試的,從報(bào)錯(cuò)提示定位回去一步一步check每一行?如果沒有IDE或者命令行寫代碼時(shí)又該怎樣快速調(diào)試?這時(shí)如果使用pdb進(jìn)行調(diào)試將會(huì)異常方便。

Pdb就是Python debugger,是python自帶的調(diào)試器。通過 pdb 我們可以交互式的查看運(yùn)行過程中變量的值、設(shè)置斷點(diǎn)、逐行執(zhí)行代碼、查看代碼的調(diào)用棧等等。并且如果環(huán)境沒有 GUI 的話,那么 pdb 能夠助你更快速的調(diào)試代碼。

首先我們準(zhǔn)備一段有問題的代碼用于示例

def test(p):
  p = p + 1
  
  return p

def fastdebug():
  print('start')
  temp = 'ready' 
  print('ok')
  res = test(temp) 
  print('end')
  
fastdebug()

這段代碼很簡單,當(dāng)我們執(zhí)行fastdebug()時(shí),會(huì)執(zhí)行fastdebug函數(shù)并在該函數(shù)中調(diào)用另一個(gè)函數(shù)test(),test函數(shù)接收一個(gè)參數(shù)p并計(jì)算p+1的值傳出。很明顯,在高亮的一句代碼中傳進(jìn)去的參數(shù)temp是str,所以當(dāng)我們執(zhí)行上面一段代碼時(shí)一定會(huì)報(bào)錯(cuò)

現(xiàn)在讓我們假裝不知道問題出在哪,使用pdb來調(diào)試這段代碼。

使用pdb

由于pdb是python標(biāo)準(zhǔn)庫因此我們可以直接import 使用

import pdb

接著在我們需要調(diào)試的代碼段前設(shè)一個(gè)斷點(diǎn)

pdb.set_trace()

應(yīng)用到我們的代碼:point_down:

可以看到運(yùn)行代碼后,pdb的調(diào)試器控制臺(tái)將從放置set_trace()的位置開始等待我們的命令,并且箭頭標(biāo)記指向pdb接下來要運(yùn)行的行。那么接下來介紹一些pdb中常用命令

使用n來執(zhí)行下一行

可以看到此時(shí)調(diào)試器指向

print('start')

在彈出的文本框中輸入n即可執(zhí)行該行,并且箭頭將指向下一行即將執(zhí)行的代碼

使用ENTER重復(fù)上一個(gè)命令

現(xiàn)在還沒有到報(bào)錯(cuò)的位置,我們使用n或者直接回車重復(fù)執(zhí)行上一個(gè)命令

使用p打印變量值

在Pdb中我們可以使用p + 變量名來查看變量值,比如我們查看變量temp的值

使用l查看上下行代碼

在Pdb中我們可以使用l查看當(dāng)前行上下幾行代碼

使用s進(jìn)入子函數(shù)

現(xiàn)在,我們來到出錯(cuò)的這一行,之所以報(bào)錯(cuò)就是傳進(jìn)去變量出了問題,因此我們可以在pdb交互行中使用s來進(jìn)入子函數(shù)test()

使用r執(zhí)行函數(shù)直到結(jié)束

在pdb中可以使用r來執(zhí)行當(dāng)前運(yùn)行函數(shù)到結(jié)束

使用c停止調(diào)試并繼續(xù)運(yùn)行

現(xiàn)在我們修改相關(guān)代碼完成調(diào)試,可以使用c命令繼續(xù)執(zhí)行命令

當(dāng)然也可以輸入q直接退出調(diào)試界面

以上就是使用Python標(biāo)準(zhǔn)庫執(zhí)行一次debug過程,可以看到pdb在命令行下調(diào)試代碼是非常出色的,當(dāng)然在某些情況下pdb將不是最好的選擇比如涉及到多線程相關(guān),而在比較大型的項(xiàng)目使用pdb也顯得力不從心,因此我們需要靈活選擇調(diào)試方案,不過至少我們又掌握了一種代碼調(diào)試工具,不是嗎?

相關(guān)文章

  • 對python中assert、isinstance的用法詳解

    對python中assert、isinstance的用法詳解

    今天小編就為的就分享一篇對python中assert、isinstance的用法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 詳解Python中open()函數(shù)指定文件打開方式的用法

    詳解Python中open()函數(shù)指定文件打開方式的用法

    well,我們這里所指的文件打開方式并不是指調(diào)用什么應(yīng)用程序去打開某個(gè)文件,而是只讀只寫或者二進(jìn)制等的打開方式,這里我們就來詳解Python中open()函數(shù)指定文件打開方式的用法
    2016-06-06
  • Python開發(fā)必備知識(shí)內(nèi)存管理與垃圾回收

    Python開發(fā)必備知識(shí)內(nèi)存管理與垃圾回收

    Python是一種高級(jí)編程語言,因其簡潔而強(qiáng)大而備受歡迎,然而如其他編程語言一樣,Python也面臨著內(nèi)存管理的挑戰(zhàn),在Python中,垃圾回收是一項(xiàng)關(guān)鍵任務(wù),用于自動(dòng)釋放不再使用的內(nèi)存,以避免內(nèi)存泄漏,本文將介紹Python中的垃圾回收機(jī)制,以及如何通過優(yōu)化代碼來提高性能
    2023-11-11
  • 基于python操作ES實(shí)例詳解

    基于python操作ES實(shí)例詳解

    這篇文章主要介紹了基于python操作ES實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python zip()函數(shù)用法實(shí)例分析

    Python zip()函數(shù)用法實(shí)例分析

    這篇文章主要介紹了Python zip()函數(shù)用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python zip()函數(shù)的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-03-03
  • Python實(shí)現(xiàn)vlog生成器的示例代碼

    Python實(shí)現(xiàn)vlog生成器的示例代碼

    vlog,全稱為Video?blog,意為影音博客,也有翻譯為微錄。本文將嘗試用Python基于Moviepy從一個(gè)文本文件中自動(dòng)生成一個(gè)視頻格式的vlog,感興趣的可以了解一下
    2023-01-01
  • python 遞歸遍歷文件夾,并打印滿足條件的文件路徑實(shí)例

    python 遞歸遍歷文件夾,并打印滿足條件的文件路徑實(shí)例

    下面小編就為大家?guī)硪黄猵ython 遞歸遍歷文件夾,并打印滿足條件的文件路徑實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Python腳本提取fasta文件單序列信息實(shí)現(xiàn)

    Python腳本提取fasta文件單序列信息實(shí)現(xiàn)

    這篇文章主要為大家介紹了Python腳本提取fasta文件單序列信息實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 利用Python實(shí)現(xiàn)文件讀取與輸入以及數(shù)據(jù)存儲(chǔ)與讀取的常用命令

    利用Python實(shí)現(xiàn)文件讀取與輸入以及數(shù)據(jù)存儲(chǔ)與讀取的常用命令

    這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)文件讀取與輸入以及數(shù)據(jù)存儲(chǔ)與讀取的常用命令,文中還介紹了用python循環(huán)保存文件并循環(huán)讀取文件的方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • python 函數(shù)的缺省參數(shù)使用注意事項(xiàng)分析

    python 函數(shù)的缺省參數(shù)使用注意事項(xiàng)分析

    這篇文章主要介紹了python 函數(shù)的缺省參數(shù)使用注意事項(xiàng),結(jié)合實(shí)例形式分析了Python函數(shù)缺省參數(shù)的使用方法與操作注意事項(xiàng),需要的朋友可以參考下
    2019-09-09

最新評(píng)論

呼和浩特市| 潞西市| 姜堰市| 淮滨县| 齐河县| 德庆县| 阳东县| 上高县| 南陵县| 翼城县| 噶尔县| 乐昌市| 徐汇区| 精河县| 白水县| 淮滨县| 江源县| 宜宾市| 石城县| 玉龙| 威宁| 株洲县| 汾阳市| 当阳市| 出国| 唐河县| 泾源县| 屯昌县| 晋中市| 开封市| 宜川县| 桐城市| 登封市| 瓦房店市| 舒兰市| 濉溪县| 伊川县| 井冈山市| 淳化县| 城市| 望奎县|