ホームページ > バックエンド開発 > Python チュートリアル > Python の警告を効果的に消すにはどうすればよいですか?

Python の警告を効果的に消すにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-07 10:31:11
オリジナル
415 人が閲覧しました

How Can I Silence Python Warnings Effectively?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート