簡體   English   中英

調試/編碼完成后,如何處理print()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM