Maison  >  Article  >  développement back-end  >  Comment puis-je capturer la sortie d'une fonction Python à l'aide d'un gestionnaire de contexte ?

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

Barbara Streisand
Barbara Streisandoriginal
2024-11-01 14:57:29159parcourir

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>

À 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!

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