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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

python调试_Python调试坑

發(fā)布時間:2023/12/4 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python调试_Python调试坑 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

寫python的人一般都不太看重調(diào)試, 因?yàn)檫@是一門解釋性語言, 在哪出錯會立馬在解釋器里提示出來。但是, 以上觀點(diǎn)只適用于小的腳本或者項(xiàng)目。因?yàn)槲以诮佑|目前項(xiàng)目之前, 我一直都是這么做的。

對于一個大的項(xiàng)目來說, 調(diào)試就不能這么做了, 這種大項(xiàng)目通常都是多進(jìn)程或者多線程, 普通的調(diào)試基本沒辦法。通常會通過記錄日志來調(diào)試, 記錄日志。。這里就是我想說得一個坑。正常的項(xiàng)目里面都會有容錯處理, 也就是各種try...except, 然后把拋出的異常寫到日志, 出錯的時候就可以通過看錯誤日志去定位信息。 但是, 拋出的異常通常只是一句話, 無法得到具體的錯誤代碼行, 這在一個模塊比較多的項(xiàng)目里簡直就是噩夢, 你可能要花費(fèi)很多時間去定位錯誤所在地方, 效率極其低下。 腫么辦呢, python里面有一個模塊叫traceback, 這個模塊是干嘛的呢, 請看官方解釋:This module provides a standard interface to extract, format and print stack traces of Python programs. It exactly mimics the behavior of the Python interpreter when it prints a stack trace. This is useful when you want to print stack traces under program control, such as in a “wrapper” around the interpreter.

也就是說, 這個模塊就像一個縮小版的解釋器一樣, 可以跟蹤代碼運(yùn)行棧。 簡單來說, 可以看到代碼詳細(xì)出錯信息, 包括在哪出錯。怎么用呢, 就說一種用法, 我覺得夠用了:import traceback

try:1/0

except Exception as e:traceback.print_exc(file=open('/tmp/error', 'wb'))

這樣程序在拋出異常后, 就會將出錯信息寫到'/tmp/error'這個文件中, just enjoy it!

另外要說的一種方法是logging模塊中用到的方法。

對于大型項(xiàng)目而言,用logging模塊調(diào)試是一種更好的方法,日志集中管理。

要使用日志,首先要聲明一個logger,具體怎么聲明這里不再贅述,參見python官方文檔或者google。

效果和traceback一樣,代碼如下:try:1/0

except Exception as e:logger.exception(e)

總結(jié)

以上是生活随笔為你收集整理的python调试_Python调试坑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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