电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python使用pdb調試代碼的技巧

瀏覽:4日期:2022-07-26 16:00:58

Python使用pdb調試代碼的技巧

什么是pdb

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

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

首先我們準備一段有問題的代碼用于示例

def test(p): p = p + 1 return pdef fastdebug(): print(’start’) temp = ’ready’ print(’ok’) res = test(temp) print(’end’) fastdebug()

這段代碼很簡單,當我們執行fastdebug()時,會執行fastdebug函數并在該函數中調用另一個函數test(),test函數接收一個參數p并計算p+1的值傳出。很明顯,在高亮的一句代碼中傳進去的參數temp是str,所以當我們執行上面一段代碼時一定會報錯

Python使用pdb調試代碼的技巧

現在讓我們假裝不知道問題出在哪,使用pdb來調試這段代碼。

使用pdb

由于pdb是python標準庫因此我們可以直接import 使用

import pdb

接著在我們需要調試的代碼段前設一個斷點

pdb.set_trace()

應用到我們的代碼:point_down:

Python使用pdb調試代碼的技巧

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

使用n來執行下一行

可以看到此時調試器指向

print(’start’)

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

Python使用pdb調試代碼的技巧

使用ENTER重復上一個命令

現在還沒有到報錯的位置,我們使用n或者直接回車重復執行上一個命令

Python使用pdb調試代碼的技巧

使用p打印變量值

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

Python使用pdb調試代碼的技巧

使用l查看上下行代碼

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

Python使用pdb調試代碼的技巧

使用s進入子函數

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

Python使用pdb調試代碼的技巧

使用r執行函數直到結束

在pdb中可以使用r來執行當前運行函數到結束

Python使用pdb調試代碼的技巧

使用c停止調試并繼續運行

現在我們修改相關代碼完成調試,可以使用c命令繼續執行命令

Python使用pdb調試代碼的技巧

當然也可以輸入q直接退出調試界面

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

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 膜结构_ETFE膜结构_膜结构厂家_膜结构设计-深圳市烨兴智能空间技术有限公司 | 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | 挤出机_橡胶挤出机_塑料挤出机_胶片冷却机-河北伟源橡塑设备有限公司 | elisa试剂盒-PCR试剂盒「上海谷研实业有限公司」 | 钢格板|热镀锌钢格板|钢格栅板|钢格栅|格栅板-安平县昊泽丝网制品有限公司 | 商标转让-购买商标专业|放心的商标交易网-蜀易标商标网 | 微妙网,专业的动画师、特效师、CG模型设计师网站! - wmiao.com 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 减速机三参数组合探头|TSM803|壁挂式氧化锆分析仪探头-安徽鹏宸电气有限公司 | 汽车整车综合环境舱_军标砂尘_盐雾试验室试验箱-无锡苏南试验设备有限公司 | 玉米加工设备,玉米深加工机械,玉米糁加工设备.玉米脱皮制糁机 华豫万通粮机 | CE认证_FCC认证_CCC认证_MFI认证_UN38.3认证-微测检测 CNAS实验室 | 常州翔天实验仪器厂-恒温振荡器-台式恒温振荡器-微量血液离心机 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 塑胶跑道_学校塑胶跑道_塑胶球场_运动场材料厂家_中国塑胶跑道十大生产厂家_混合型塑胶跑道_透气型塑胶跑道-广东绿晨体育设施有限公司 | 广州企亚 - 数码直喷、白墨印花、源头厂家、透气无手感方案服务商! | 耐火浇注料-喷涂料-浇注料生产厂家_郑州市元领耐火材料有限公司 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 上海律师咨询_上海法律在线咨询免费_找对口律师上策法网-策法网 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 精密模具制造,注塑加工,吹塑和吹瓶加工,EPS泡沫包装生产 - 济南兴田塑胶有限公司 | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 水热合成反应釜-防爆高压消解罐-西安常仪仪器设备有限公司 | led冷热冲击试验箱_LED高低温冲击试验箱_老化试验箱-爱佩百科 | 对夹式止回阀厂家,温州对夹式止回阀制造商--永嘉县润丰阀门有限公司 | 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 金属清洗剂,防锈油,切削液,磨削液-青岛朗力防锈材料有限公司 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 下水道疏通_管道疏通_马桶疏通_附近疏通电话- 立刻通 | 企业微信scrm管理系统_客户关系管理平台_私域流量运营工具_CRM、ERP、OA软件-腾辉网络 | 专业深孔加工_东莞深孔钻加工_东莞深孔钻_东莞深孔加工_模具深孔钻加工厂-东莞市超耀实业有限公司 | 高扬程排污泵_隔膜泵_磁力泵_节能自吸离心水泵厂家-【上海博洋】 | 无硅导热垫片-碳纤维导热垫片-导热相变材料厂家-东莞市盛元新材料科技有限公司 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 网站优化公司_北京网站优化_抖音短视频代运营_抖音关键词seo优化排名-通则达网络 | LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | 荣事达手推洗地机_洗地机厂家_驾驶式扫地机_工业清洁设备 | EPDM密封胶条-EPDM密封垫片-EPDM生产厂家 | 玻纤土工格栅_钢塑格栅_PP焊接_单双向塑料土工格栅_复合防裂布厂家_山东大庚工程材料科技有限公司 | 匀胶机旋涂仪-声扫显微镜-工业水浸超声-安赛斯(北京)科技有限公司 | 食品无尘净化车间,食品罐装净化车间,净化车间配套风淋室-青岛旭恒洁净技术有限公司 | 深圳网站建设-高端企业网站开发-定制网页设计制作公司 |