ロギングフォーマット補間(W1202):
logger.debug('message: {}'.format('test'))
pylint
は、次の警告を生成しますロギング関数に%形式を使用し、%パラメータを 引数として渡します。ロギングステートメントの呼び出し形式がの場合に使用されます"ロギング(format_string.format(format_args ...))"。そのような 呼び出しは代わりに%形式を使用する必要がありますが、引数を引数として渡すことによって、ログ機能の補間を に任せます。
私はこの警告をオフにすることができますが、私はそれを理解したいと思います。私はformat()
を使用して、python3
のステートメントをプリントアウトするのが望ましいと仮定しました。なぜロガーのステートメントには当てはまりませんか?
恩恵を受けることができない機能は何ですか? '.format()'は常に展開されていますか?これは、「遅延補間」とは、呼び出されたときにのみ展開されるということですか? – pfnuesel
@pfnuesel、.format()はlogger.errorの呼び出しの前に展開されますが、 "lazy interpolation"は必要な場合にのみ拡張が行われることを意味します(メッセージは実際にどこかに表示されます) – sthenault
この遅延評価差をつけるのが好きですか? [PEP282](https://www.python.org/dev/peps/pep-0282/)または[ロギングライブラリ](https://docs.python.org/2/library)で見つからなかった/logging.html) – culix