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!