日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产视频久久久久久久 | 天天av天天爽 | 亚洲一区二区乱码 | 日韩国产传媒 | 欧美综合网 | 丰满少妇一区二区三区专区 | 韩国三级与黑人 | 99日韩 | 曰本三级日本三级日本三级 | 国产一二三四在线 | 欲色视频 | 日韩人妻精品中文字幕 | 在线观看一二三区 | 日日摸日日添日日躁av | 国产男人搡女人免费视频 | 久久九九爱 | 成人人伦一区二区三区 | 成人免费在线播放 | 挪威xxxx性hd极品 | 999国产精品亚洲77777 | 91免费视频网址 | 伊人丁香| 午夜精品一区二区三区在线 | 久久久九九九九 | mm1313亚洲国产精品美女 | 亚洲经典视频在线观看 | 美女久久久久久久久久 | 伊人射| 99热这里只有精品4 精品国产黄色 | 成人在线观看视频网站 | 大奶子网站 | www.久久99 | 亚洲爱视频 | 亚洲一区在线视频观看 | 综合色婷婷一区二区亚洲欧美国产 | 亚洲国产一级 | 国产欧美网站 | 欧美又黑又粗 | 精品成人国产 | 国产免费黄色小视频 | www色亚洲 | 九九视频免费 | 日本天堂在线播放 | 色吧在线视频 | 国产麻豆视频 | 欧美日韩一区二区区别是什么 | 国产网红无码精品视频 | 一二三区中文字幕 | 沟厕沟厕近拍高清视频 | 啪啪精品 | 高跟肉丝丝袜呻吟啪啪网站av | 国产一区二区免费电影 | 老司机av福利 | 国产福利电影在线 | 国产视频一区二区三区在线 | 国产亚洲精品成人无码精品网站 | 怡红院一区二区三区 | 国产最新视频在线 | 日本精品免费视频 | 丰满人妻妇伦又伦精品国产 | 日韩av中文字幕在线 | 黄色成人免费视频 | 亚洲人成人网 | 国产丝袜视频在线观看 | 亚洲一区二区三区激情 | 国产精品视频成人 | 亚洲综合在线一区二区 | 欧洲色视频 | 制服丝袜av在线 | 青青草国产在线 | a√在线| 成人午夜av | 99啪啪| 成人宗合网 | 人妻精品久久久久中文字幕69 | 欧美精品一区二区在线播放 | 亚洲欧美日本国产 | 亚洲国产精品免费视频 | 精品无码一区二区三区在线 | 国产剧情av在线 | 国产奶头好大揉着好爽视频 | 黄网视频在线观看 | 手机看片1024日韩 | av毛片观看 | 99热久久这里只有精品 | 官场艳妇疯狂性关系 | 日韩射| 中文字幕在线视频免费播放 | 欧美bbw视频 | 99成人精品视频 | 淫五月 | av电影网站在线观看 | 五月天视频网站 | 日韩电影在线观看一区 | 无码人妻aⅴ一区二区三区日本 | 亚洲国产精品99久久久久久久久 | 美女破处视频 | 欧美高清视频一区二区 | 成人免费毛片aaaaaa片 |