【Python】yieldの使い方

pythonのyieldを紹介するサムネイル

こんにちは、にわこまです。

今回は、pythonのyieldの使い方について紹介したいと思います。yieldは、returnと似ているところがあり、値を返却する文です。yieldの動きに注目して説明していきます。

 

誤字脱字や何かございましたらご連絡お願いいたします。

 

 

スポンサードサーチ


yield

yieldは、関数の処理を一時停止して値を返します。

一方、returnは関数の処理を終了して値を返します。

 

図とコードで示します。

return文を使った実行図とyield文を使った実行図

 

test01関数は、「I am a student.」と返されます。

 

test02関数の1回目の実行では、「I am a college student.」と返されます。

test02関数の2回目の実行では、「I am a college student.I like Python.」と返されます。

test02関数の3回目の実行では、「I am a college student.I like Python.Python is a Programming Language.」と返されます。

 

※コードや詳しい実行方法は以下のファイルをダウンロードしてください。

 

yieldでは、前回返されたyield文の次の1行から関数が実行されます。そのとき、ローカル変数の値は保持されます。

 

 

メリット

メモリの使用量を少なく済ませることができる。

例えば、1KBの文字列ファイルを1行ずつ処理するプログラムで、一気に1KB読み込むと1KBの大きさのメモリを消費します。

yieldを使い、1行ずつ読み込み処理すれば、1行分の大きさのメモリを消費するだけで済みます。

 

 

デメリット

コードが複雑になる

 

 

まとめ

まとめの画像

今回は、pythonのyieldの使い方や動作について紹介しました。

 

yieldは関数を一時停止して、値を返します。関数をもう一度実行するときは、前回値を返したyield文の次の1行から再開されます。

 

yield文は使う場面が少ないため、動作や使い方を忘れがちです。

yieldは大量のデータを1行ずつなど、ちょっとずつ処理するときに使います。

 

 

最後までお読みいただきありがとうございます。


スポンサードサーチ