完成调试/编码后,如何处理print()

时间:2016-08-09 04:07:00

标签: python

对于python专家: 我放了很多print()来检查我的变量的值。 完成后,我需要删除print()。它非常耗时且容易出现人为错误。

想了解你们如何处理print()。你在编码时删除它还是在结尾删除它?或者有一种方法可以自动删除它,或者你不使用print()来检查变量值?

3 个答案:

答案 0 :(得分:4)

改为使用logging,此处为why 记录模块带有许多简单和简单的功能。方便的日志方法,如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()/ loggging语句!!!!
尝试使用regx注释掉所有打印语句

find . -name '<filename>.py' -exec sed -ri "s/(^\s*)(print.*$)/#\1\2/g" {} \;

答案 1 :(得分:2)

您可以使用具有调试级别的日志记录,并在调试完成后将级别更改为info。因此,不会打印任何带有logger.debug()的语句。

答案 2 :(得分:0)

我所做的是将print语句与字符串中的特殊文本标记放在一起。我通常使用print("XXX", thething)。然后我只搜索并删除该字符串的行。在输出中也更容易发现。