Python 中的评估有多懒惰?如果我的代码看起来像
logging.debug('My very long list: %s' % list(x for x in long_generator))
并且日志记录有效级别使得调试消息被忽略,我是否会因使用此行而导致性能损失?
这不会被懒惰地评估,但是 Python logging 有一个解决这个问题的方法:isEnabledFor().
if logger.isEnabledFor(logging.DEBUG):
logger.debug('My very long list: %s' % list(x for x in long_generator))
Run Code Online (Sandbox Code Playgroud)
您的列表将建成并格式化只有当日志级别高于DEBUG。
| 归档时间: |
|
| 查看次数: |
214 次 |
| 最近记录: |