日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

用python语言调试程序你用的平台是_Python 程序如何高效地调试?

發(fā)布時間:2024/10/12 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用python语言调试程序你用的平台是_Python 程序如何高效地调试? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

看LZ的意思是想了解出現(xiàn)BUG怎么調(diào)試的問題。BUG有2種:

第一種,直接造成了錯誤,程序拋了個異常。樓上已經(jīng)講了IPython,是的。首先我先寫一個有問題的例子:

a = 1

b = 0

a / b

執(zhí)行肯定是報錯的:

? python test.py

Traceback (most recent call last):

File "test.py", line 4, in

a / b

ZeroDivisionError: integer division or modulo by zero

有點經(jīng)驗的人一眼看去就知道 是因為分母是0造成的。可是腳本執(zhí)行結束了,要是調(diào)試還得不斷的在對應位置加print。絕招就是:

? ipython test.py --pdb

---------------------------------------------------------------------------

ZeroDivisionError Traceback (most recent call last)

/Users/dongweiming/test/test.py in ()

2 b = 0

3

----> 4 a / b

ZeroDivisionError: integer division or modulo by zero

*** NameError: name 'pdb' is not defined

> /Users/dongweiming/test/test.py(4)()

1 a = 1

2 b = 0

3

----> 4 a / b

ipdb> p b # p是print的別名

0

ipdb> p a

1

ipdb>

程序運行在錯誤的地方,嘎.. 停住了,保存了錯誤上下文,進入pdb環(huán)境,直接調(diào)試去吧,不要太開心。

說到這里,ipdb(pdb)可以設置斷點、單步調(diào)試、進入函數(shù)調(diào)試、查看當前代碼、查看棧片段、動態(tài)改變變量的值等。它有很多快捷鍵:

ipdb> help

Documented commands (type help ):

========================================

EOF bt cont enable jump pdef psource run unt

a c continue exit l pdoc q s until

alias cl d h list pfile quit step up

args clear debug help n pinfo r tbreak w

b commands disable ignore next pinfo2 restart u whatis

break condition down j p pp return unalias where

其中up,down,n,j,l,where,s, args等我都非常常用,我非常建議你每個快捷鍵都了解一下。當然很懶的話,你們也有福利,看 Python 代碼調(diào)試技巧 。

第二種:隱藏BUG,也就是并沒有報錯,但是輸出不符合預期,這種的比較煩,因為如果你經(jīng)驗少寫的時候又不咋專心的話,基本上就得挨個地方去確認,有人說,「import pdb pdb.set_trace() 」,嗯很標準的方案,但是我一般不用。原因是什么呢,比如調(diào)試Web應用,如果set_trace()的話,需要點多個next才能到你想調(diào)試的地方,手指頭都點木了。。所以我一般使用如下三個方法:

1. 拋異常。直接讓你想要調(diào)試的位置讓它先跑個異常,比如Flask的DEBUG的模式下,werkzeug里面的DebuggedApplication就會把Web頁面渲染成一個可調(diào)試和可執(zhí)行的環(huán)境,直接到上面調(diào)試:

2. 在對應位置使用print和logging。這是最基礎的玩法。我一般只會在已經(jīng)心理有數(shù),只是需要看看日志輸出來確認的時候加臨時的。平時的應用日志也會有常規(guī)的記錄,并且會記錄堆棧(當然,使用sentry之類的方式搜集日志是最好的),比如重要的上線過程中,出了問題但是開發(fā)環(huán)境又不好模擬出來的時候,「tail -f」日志文件們,這樣出現(xiàn)問題一看就看到了。 說到這里再推薦一個很有意思的項目: GitHub - zestyping/q: Quick and dirty debugging output for tired programmers. ,它是在我看pycon2013演講中發(fā)現(xiàn)的,有興趣可以看看, PyVideo.org · Lightning Talks。我之前常用它。

3. 自己維護一些用于調(diào)試的庫。我會把工作中常用到的、有用的一些函數(shù)、方法搜集起來,放在一個庫里。其中有個獲取調(diào)用棧的函數(shù)類似這樣:

import sys

def get_cur_info():

print sys._getframe().f_code.co_filename # 當前文件名

print sys._getframe(0).f_code.co_name # 當前函數(shù)名

print sys._getframe(1).f_code.co_name # 調(diào)用該函數(shù)的函數(shù)的名字,如果沒有被調(diào)用,則返回module

print sys._getframe().f_lineno # 當前行號

可以通過看當前上下文的調(diào)用棧的輸出來幫助你揪出那個隱藏的「蟲」

歡迎關注本人的微信公眾號獲取更多Python相關的內(nèi)容(也可以直接搜索「Python之美」):

總結

以上是生活随笔為你收集整理的用python语言调试程序你用的平台是_Python 程序如何高效地调试?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费色播 | 人人澡人人透人人爽 | 99热热热热 | 国精产品乱码一区一区三区四区 | 精品中文字幕一区二区 | 在线日韩免费 | 国产精品手机在线 | 三级av片| 亚洲片国产一区一级在线观看 | 欧美一级在线免费观看 | 7777奇米影视 | 亚洲欧美在线免费 | 五月天激情综合 | 不卡免费av| 欧美精品福利视频 | 国产又粗又深又猛又爽又在线观看 | 99无码熟妇丰满人妻啪啪 | 天天鲁一鲁摸一摸爽一爽 | 国产精品无码av无码 | 深夜福利在线免费观看 | av网址网站 | 国产一级做a爱免费视频 | 日韩毛片在线播放 | av在线电影观看 | 色就是欧美 | 在线天堂资源 | 成人99| 一区二区三区在线观 | 玖玖爱免费视频 | 久久大香 | 农村少妇无套内谢粗又长 | 久久精品2019中文字幕 | 亚洲国产精品成人va在线观看 | 日韩精品一区二区三区国语自制 | 婷婷激情视频 | 欧美视频一 | 美女一区二区视频 | 中文字幕无码毛片免费看 | 国产精品88久久久久久妇女 | 亚洲av第一成肉网 | 亚洲韩国精品 | 一区二区三区国产 | 久久久久麻豆v国产精华液好用吗 | av伊人久久 | 午夜精品视频在线观看 | 操操网站 | 尤物视频网站在线观看 | 国产成人一区二区三区电影 | 一级全黄少妇性色生活片 | 青青青手机视频 | 九九啪 | 日本黄大片在线观看 | 在线免费精品 | 天堂在线观看视频 | 中文字幕五区 | 97se综合| 91av免费看| 亚洲一区二区三区视频 | 日本一区二区三区视频在线观看 | 亚洲av成人无码久久精品老人 | 久久久欧美精品 | 欧美午夜小视频 | 午夜天堂精品 | 男女啊啊啊视频 | 在线免费黄色网 | 黄色一级免费网站 | 亚洲美女视频网站 | 欧美一区二区三区激情视频 | 精品久久一区 | 亚洲成人免费在线 | 粉嫩av一区二区夜夜嗨 | 久久久欧美精品 | 中文字幕av有码 | 91亚洲精品一区二区乱码 | 色av一区二区三区 | fc2ppv在线播放 | 高清国产一区二区三区 | 久久久久久一区二区 | 超碰极品 | 日韩欧美黄色大片 | 免费日韩视频 | 在线观看av片 | 精品日本一区二区三区在线观看 | 欧美日韩国产激情 | 插吧插吧网 | 一区二区在线视频免费观看 | 天天碰免费视频 | 亚洲国产中文字幕在线 | 免费三级黄 | www.黄色在线观看 | 操她视频在线观看 | 亚洲高清成人 | 老外毛片| 欧美午夜精品久久久久久孕妇 | 日韩欧美视频在线 | 成人黄色在线看 | 俄罗斯女人裸体性做爰 | 韩国无码一区二区三区精品 | 欧州一区二区三区 |