Comment puis-je capturer la sortie d'une fonction Python à l'aide d'un gestionnaire de contexte ?

Barbara Streisand
Libérer: 2024-11-01 14:57:29
original
167 Les gens l'ont consulté

How Can I Capture the Output of a Python Function Using a Context Manager?

Redirection de la sortie standard vers la sortie de la fonction de capture

Cette question répond à la nécessité de capturer la sortie standard d'une fonction Python, à savoir do_something(my_object), qui modifie l'objet et imprime des statistiques au fur et à mesure.

Pour y parvenir, une classe de gestionnaire de contexte, Capturing, a été proposée. Cette classe fournit deux fonctions clés :

  • __enter__() : redirige la sortie standard vers un tampon interne.
  • __exit__() : restaure la sortie standard à sa cible d'origine et ajoute la sortie capturée au attribut list de la classe.

L'utilisation du gestionnaire de contexte est simple :

<code class="python">with Capturing() as output:
    do_something(my_object)</code>
Copier après la connexion

À ce stade, la variable de sortie contiendra une liste des lignes imprimées par do_something().

De plus, il est à noter que cette technique peut être utilisée plusieurs fois pour capturer la sortie de différents appels de fonction. Les résultats seront concaténés dans la même liste de sortie.

Cette approche est particulièrement utile lorsque la fonction appelée ne peut pas être modifiée pour renvoyer les informations souhaitées.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!