Python 警告の合唱を沈黙させる
Python コード内で絶え間なく続く警告の流れに別れを告げませんか?これは、過剰な警告を生成するレガシー コードまたはモジュールを操作する場合に特に問題となる可能性があります。個々の関数の警告を手動で無効にすることもできますが、より洗練された解決策も利用できます。
警告を一時的に抑制する
Python の警告モジュールは、一時的に警告を表示しない賢い方法を提供します。警告。 catch_warnings コンテキスト マネージャーを利用すると、特定のコード ブロック中の特定の警告カテゴリを無視できます。コードを with ... ステートメント内でラップするだけで簡単です。
import warnings def fxn(): warnings.warn("deprecated", DeprecationWarning) with warnings.catch_warnings(): warnings.simplefilter("ignore") fxn()
また、Python バージョン 3.11 以降では、より簡潔な構文を使用できます。
with warnings.catch_warnings(action="ignore"): fxn()
グローバル警告抑制
次のような症状がある場合は、少し反抗的で、すべての警告を一度にシャットダウンしたい場合は、warnings.filterwarnings 関数が迅速かつ汚い解決策を提供します。アクションを「無視」に設定するだけで、警告の合唱団が即座に沈黙します。
import warnings warnings.filterwarnings("ignore") def f(): print('before') warnings.warn('you are warned!') print('after') f()
前:
>>> f() before <stdin>:3: UserWarning: you are warned! after
後:
>>> warnings.filterwarnings("ignore") >>> f() before after
推奨事項
ほとんどのシナリオでは、次のような対象を絞ったアプローチをお勧めします。 catch_warnings は、重要な警告をキャッチする機能を維持しながら、特定の警告を無視します。これにより、無関係な警告に基づいて問題のトラブルシューティングを行うことがなくなります。ただし、すべての警告を抑制したい場合は、warnings.filterwarnings アプローチでグローバルなソリューションを提供できます。
以上がPython の警告を効果的に消すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。