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

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

 更新時(shí)間:2021年10月25日 10:56:19   作者:寫代碼的明哥  
這篇文章主要為大家介紹了Python代碼的一些方便快捷的調(diào)試技巧,文中含有詳細(xì)新的步驟操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助

關(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()

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

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

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

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

    return result

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

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

但如果你的參數(shù)類型傳成了 str,函數(shù)就會(huì)報(bào)錯(cuò)啦~

>>> 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'

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

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

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

事實(shí)上,pdb 是支持這種用法的。

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

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

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

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

python -m pdb:運(yùn)行 python 文件時(shí)直接進(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 模式下出錯(cuò)后直接切換到調(diào)試模式,并定位到報(bào)錯(cuò)位置。

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

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

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

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

第一個(gè)文檔:PyCharm 中文指南 1.0 文檔

花了兩個(gè)多月的時(shí)間,整理了 100 個(gè) PyCharm 的使用技巧,為了讓新手能夠直接上手,我花了很多的時(shí)間錄制了上百?gòu)?GIF 動(dòng)圖,有興趣的前往在線文檔閱讀。

第二個(gè)文檔:PyCharm 黑魔法指南 1.0 文檔

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

第三個(gè)文檔:Python 中文指南 1.0 文檔

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

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

相關(guān)文章

  • Python Serial串口基本操作(收發(fā)數(shù)據(jù))

    Python Serial串口基本操作(收發(fā)數(shù)據(jù))

    這篇文章主要介紹了Python Serial串口基本操作(收發(fā)數(shù)據(jù)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • python使用請(qǐng)求頭部headers處理403錯(cuò)誤

    python使用請(qǐng)求頭部headers處理403錯(cuò)誤

    有時(shí)候請(qǐng)求一個(gè)網(wǎng)頁的時(shí)候,無論是GET請(qǐng)求還是POST請(qǐng)求都訪問不了,并出現(xiàn)403錯(cuò)誤,這是因?yàn)檫@些網(wǎng)頁為了防止惡意采集信息,使用了反爬機(jī)制,本文給大家介紹了python如何使用請(qǐng)求頭部headers處理403錯(cuò)誤,需要的朋友可以參考下
    2024-03-03
  • 用Python自動(dòng)清理系統(tǒng)垃圾的實(shí)現(xiàn)

    用Python自動(dòng)清理系統(tǒng)垃圾的實(shí)現(xiàn)

    這篇文章主要介紹了用Python自動(dòng)清理系統(tǒng)垃圾的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 對(duì)Python函數(shù)設(shè)計(jì)規(guī)范詳解

    對(duì)Python函數(shù)設(shè)計(jì)規(guī)范詳解

    今天小編就為大家分享一篇對(duì)Python函數(shù)設(shè)計(jì)規(guī)范詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python zip,lambda,map函數(shù)代碼實(shí)例

    python zip,lambda,map函數(shù)代碼實(shí)例

    這篇文章主要介紹了python zip,lambda,map函數(shù)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python進(jìn)階之列表推導(dǎo)與生成器表達(dá)式詳解

    Python進(jìn)階之列表推導(dǎo)與生成器表達(dá)式詳解

    這篇文章主要為大家詳細(xì)介紹了Python中列表推導(dǎo)與生成器表達(dá)式的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,需要的可以參考一下
    2023-04-04
  • python matplotlib畫圖庫學(xué)習(xí)繪制常用的圖

    python matplotlib畫圖庫學(xué)習(xí)繪制常用的圖

    這篇文章主要為大家詳細(xì)介紹了python matplotlib畫圖庫學(xué)習(xí)繪制常用的圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 計(jì)算機(jī)二級(jí)python學(xué)習(xí)教程(3) python語言基本數(shù)據(jù)類型

    計(jì)算機(jī)二級(jí)python學(xué)習(xí)教程(3) python語言基本數(shù)據(jù)類型

    這篇文章主要為大家詳細(xì)介紹了計(jì)算機(jī)二級(jí)python學(xué)習(xí)教程的第3篇,python語言基本數(shù)據(jù)類型,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 詳解Python中遞歸函數(shù)的原理與使用

    詳解Python中遞歸函數(shù)的原理與使用

    如果一個(gè)函數(shù),可以自己調(diào)用自己,那么這個(gè)函數(shù)就是一個(gè)遞歸函數(shù)。本文將詳細(xì)講解Python中遞歸函數(shù)的使用與原理,感興趣的可以了解一下
    2022-05-05
  • vue學(xué)習(xí)筆記之動(dòng)態(tài)組件和v-once指令簡(jiǎn)單示例

    vue學(xué)習(xí)筆記之動(dòng)態(tài)組件和v-once指令簡(jiǎn)單示例

    這篇文章主要介紹了vue學(xué)習(xí)筆記之動(dòng)態(tài)組件和v-once指令,結(jié)合簡(jiǎn)單實(shí)例形式詳細(xì)分析了vue.js動(dòng)態(tài)組建點(diǎn)擊切換相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02

最新評(píng)論

昌宁县| 林芝县| 廊坊市| 崇阳县| 喀喇沁旗| 中牟县| 饶阳县| 石屏县| 岢岚县| 宝丰县| 老河口市| 稷山县| 邳州市| 独山县| 界首市| 太和县| 繁峙县| 昌黎县| 锡林浩特市| 磐石市| 新邵县| 黔江区| 抚州市| 南和县| 商南县| 新泰市| 南漳县| 广灵县| 长乐市| 寿光市| 库车县| 凤翔县| 衡阳县| 通城县| 玛多县| 马尔康县| 陈巴尔虎旗| 济源市| 嘉荫县| 临汾市| 确山县|