コンテキスト マネージャーを使用して Python 関数の出力をキャプチャするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-01 14:57:29
オリジナル
167 人が閲覧しました

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

stdout を関数出力のキャプチャにリダイレクトする

この質問は、Python 関数、つまり do_something(my_object) から stdout 出力をキャプチャする必要性について説明します。これはオブジェクトを変更し、途中で統計を出力します。

これを実現するために、コンテキスト マネージャー クラスである Capturing が提案されています。このクラスは 2 つの主要な関数を提供します。

  • __enter__(): stdout を内部バッファにリダイレクトします。
  • __exit__(): stdout を元のターゲットに復元し、キャプチャされた出力をクラスの list 属性。

コンテキスト マネージャーの使用法は簡単です。

<code class="python">with Capturing() as output:
    do_something(my_object)</code>
ログイン後にコピー

この時点で、出力変数には do_something() によって出力された行のリストが含まれます。

さらに、この手法を複数回使用して、さまざまな関数呼び出しからの出力をキャプチャできることに注意してください。結果は同じ出力リストに連結されます。

このアプローチは、呼び出される関数を変更して必要な情報を返すことができない場合に特に便利です。

以上がコンテキスト マネージャーを使用して Python 関数の出力をキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!