繁体   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