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
Libérer: 2024-12-07 10:31:11
original
415 Les gens l'ont consulté

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()
Copier après la connexion

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

with warnings.catch_warnings(action="ignore"):
    fxn()
Copier après la connexion

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()
Copier après la connexion

Avant :

>>> f()
before
<stdin>:3: UserWarning: you are warned!
after
Copier après la connexion

Après :

>>> warnings.filterwarnings("ignore")
>>> f()
before
after
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal