Maison >développement back-end >Tutoriel Python >Comment puis-je faire taire efficacement les avertissements Python ?

Comment puis-je faire taire efficacement les avertissements Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-07 10:31:11421parcourir

How Can I Silence Python Warnings Effectively?

Faire taire le chœur des avertissements Python

Voulez-vous dire adieu au flux constant d'avertissements dans votre code Python ? Cela peut être particulièrement gênant lorsque vous travaillez avec du code existant ou des modules qui génèrent des avertissements excessifs. Bien que la désactivation manuelle des avertissements pour des fonctions individuelles puisse être une option, il existe des solutions plus élégantes disponibles.

Suppression temporaire des avertissements

Le module d'avertissements de Python offre un moyen intelligent de désactiver temporairement les avertissements. avertissements. En utilisant le gestionnaire de contexte catch_warnings, on peut ignorer des catégories d'avertissement spécifiques lors d'un bloc de code spécifique. C'est aussi simple que d'envelopper votre code dans une instruction with ....

import warnings

def fxn():
    warnings.warn("deprecated", DeprecationWarning)

with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    fxn()

Alternativement, pour les versions Python 3.11 et supérieures, une syntaxe plus concise est disponible :

with warnings.catch_warnings(action="ignore"):
    fxn()

Suppression des avertissements mondiaux

Si vous vous sentez un peu rebelle et préférez désactiver tous les avertissements à une fois, la fonction warns.filterwarnings fournit une solution rapide et sale. Réglez simplement l'action sur « ignorer » pour faire taire instantanément le chœur d'avertissement.

import warnings

warnings.filterwarnings("ignore")

def f():
    print('before')
    warnings.warn('you are warned!')
    print('after')

f()

Avant :

>>> f()
before
<stdin>:3: UserWarning: you are warned!
after

Après :

>>> warnings.filterwarnings("ignore")
>>> f()
before
after

Recommandation

Pour la plupart des scénarios, nous recommandons l'approche ciblée consistant à utiliser catch_warnings pour ignorer les avertissements spécifiques tout en maintenir la capacité d’attraper les éléments essentiels. Cela garantit que vous ne résolvez pas les problèmes sur la base d'avertissements non pertinents. Cependant, si vous êtes certain de vouloir supprimer tous les avertissements, l'approche warns.filterwarnings peut fournir une solution globale.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn