![](/img/trans.png)
[英]How do you avoid leaving debugger print/pdb statements in python open source apps when you're debugging them and just finish?
[英]How do you deal with print() once you done with debugging/coding
對於python專家:我投入了大量print()來檢查變量的值。 完成后,我需要刪除print()。 這非常耗時,並且容易引起人為錯誤。
想學習你們如何處理print()。 您在編碼時將其刪除還是最后將其刪除? 還是有一種自動刪除它的方法,或者您不使用print()檢查變量值?
請改用日志記錄 ,這就是原因 。
日志記錄模塊附帶許多簡單方便的日志記錄方法,例如debug, info, warning, error, critical
例如: logging.debug(<debug stuff>)
編輯我不確定我是否正確理解您是否需要在完成后禁用日志記錄,但是如果您想取消控制台日志記錄,可以嘗試
#logger = logging.getLogger() # this gets the root logger
logger = logging.getLogger('my-logger')
logger.propagate = False
# now if you use logger it will not log to console.
編輯
我認為一旦確定一切正常,您想從代碼中刪除所有print()/ logging語句!
嘗試使用regx注釋掉所有打印語句
find . -name '<filename>.py' -exec sed -ri "s/(^\s*)(print.*$)/#\1\2/g" {} \;
您可以將日志記錄與調試級別配合使用,一旦調試完成,請將級別更改為info。 因此,不會顯示帶有logger.debug()的任何語句。
我要做的是在字符串中添加帶有特殊文本標記的打印語句。 我通常使用print("XXX", thething)
。 然后,我只是搜索並刪除帶有該字符串的行。 在輸出中也更容易發現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.