人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

Python代碼調(diào)試技巧教程詳解

發(fā)布日期:2021-12-20 15:32 | 文章來源:源碼中國

關(guān)于代碼調(diào)試的技巧,我之前寫過很多的文章,關(guān)注比較早的同學(xué),也應(yīng)該都有看過。

還沒看過的同學(xué),歡迎前往查閱:更多Python代碼調(diào)試技巧

其中有一篇是關(guān)于 pdb 的調(diào)試技巧的:

里面介紹了兩種 pdb 的調(diào)試入口,也是大部分所熟知的。

這里再帶大家回顧一下

第一種:指定 -m pdb 來開啟

$ python -m pdb pdb_demo.py

第二種:使用 pdb.set_trace() 在代碼中設(shè)置斷點(diǎn)

import pdb
pdb.set_trace()

但其實,pdb 還另外兩種調(diào)試方法,第一種方法,可能有 99% 的開發(fā)者都沒用過,甚至連見過都沒有。

這兩種方法,是配合 Python Console 的交互界面來實現(xiàn)的。

首先我準(zhǔn)備好一個名為 utils.py 的 Python文件,里面定義了一個 sum 的工具函數(shù)(僅作演示用)。

def sum(*args):
 result = 0
 for arg in args:
  result += arg
 return result

然后在終端敲入 Python 進(jìn)入 Console 的模式,導(dǎo)入這個模塊,并調(diào)用 sum 函數(shù),在正常情況下,函數(shù)可以正常工作。

>>> import utils
>>> utils.sum(1,2,3)
6

但如果你的參數(shù)類型傳成了 str,函數(shù)就會報錯啦~

>>> utils.sum(1,2,"3")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/MING/utils.py", line 4, in sum
 result += arg
TypeError: unsupported operand type(s) for +=: 'int' and 'str'

由于這里的報錯是我刻意觸發(fā)的,從報錯來看,是很容易定位的。

但是在實際應(yīng)用中,難免會遇到一些無法從報錯信息直接判斷 bug 所在的情況。

這個時候,如果可以在報錯后,切換到 pdb 的調(diào)試模式就好了~

事實上,pdb 是支持這種用法的。

只要你在當(dāng)前的會話中,導(dǎo)入 pdb,再執(zhí)行 pdb.pm(),就可以切換到熟悉的 pdb 調(diào)試界面,并在拋錯的地方打上斷點(diǎn),然后你就可以任意的查看運(yùn)行時的變量信息。

如果你不是想等報錯了再調(diào)試,而是一開始就想進(jìn)入調(diào)試模式,可以使用 pdb.runcall() 函數(shù)

有的同學(xué)可能還會想到 pdb.run()pdb.runeval() 這兩個函數(shù),但這兩種方法,是需要提前在函數(shù)調(diào)試斷點(diǎn)的,這就比較麻煩了,一般情況下不推薦使用。

綜上所述, pdb 調(diào)試方法主要有六種:

python -m pdb:運(yùn)行 python 文件時直接進(jìn)入調(diào)試模式

pdb.set_trace():事先設(shè)置斷點(diǎn),然后直接運(yùn)行 python 文件

pdb.run():事先設(shè)置斷點(diǎn),然后直接運(yùn)行 python 模塊

pdb.runeval():事先設(shè)置斷點(diǎn),然后直接運(yùn)行 python 模塊(與 pdb.run 類似)

pdb.pm():在 Console 模式下出錯后直接切換到調(diào)試模式,并定位到報錯位置。

pdb.runcall():可以在不設(shè)置斷點(diǎn)的情況下,直接調(diào)試代碼片段。

其中,pdb.pm() 是本文的重點(diǎn),他雖然冷門,但卻很好用,推薦給大家。

以上就是我今天的分享,希望對你有用,如果你也有好用的調(diào)試小技巧,歡迎留言分享,互相學(xué)習(xí)。

文章最后給大家介紹三個我自己寫的在線文檔:

第一個文檔:PyCharm 中文指南 1.0 文檔

花了兩個多月的時間,整理了 100 個 PyCharm 的使用技巧,為了讓新手能夠直接上手,我花了很多的時間錄制了上百張 GIF 動圖,有興趣的前往在線文檔閱讀。

第二個文檔:PyCharm 黑魔法指南 1.0 文檔

系統(tǒng)收錄各種 Python 冷門知識,Python Shell 的多樣玩法,令人瘋狂的 Python 炫技操作,Python 的超詳細(xì)進(jìn)階知識解讀,非常實用的 Python 開發(fā)技巧等。

第三個文檔:Python 中文指南 1.0 文檔

花了三個月時間寫的一本 適合零基礎(chǔ)入門 Python 的全中文教程,搭配大量的代碼案例,讓初學(xué)者對 代碼的運(yùn)作效果有一個直觀感受,教程既有深度又有廣度,每篇文章都會標(biāo)內(nèi)容的難度,是基礎(chǔ)還是進(jìn)階的,可供讀者進(jìn)行選擇,是一本難得的 Python 中文電子教程。

以上就是Python代碼調(diào)試技巧教程詳解的詳細(xì)內(nèi)容,更多關(guān)于Python調(diào)試技巧的資料請關(guān)注本站其它相關(guān)文章!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部