タグ

ブックマーク / ailaby.com (1)

  • python の yield。サクッと理解するには return と比較 | コード7区

    return との比較 return と yeild を比較してみます。 まず return ですが、戻り値のある return の動作は 関数の処理を 終了 し 値を返す です。 一方、yeild は 関数の処理を 一旦停止 し 値を返す という動きをします。 一旦停止なので、yeild の処理は再開されます。 図にすると yeild の場所で一旦停止し、再開時は次の行からスタートします(再開のきっかけは後述)。 なんのために ? でわ、yield があると何が便利なのでしょうか。 単純な例ですが、たとえば 1GB の巨大なテキストファイルがあるとします。そして、この巨大なファイルを読み込み、データを渡してくれる関数を作るとします。 これを普通にやろうとすると、受け渡し用のメモリが 1GB という巨大なサイズになってしまいます。 ところが yield を使えば、少量、たとえば 1 行づつ

    kdmgs110
    kdmgs110 2017/11/17
    yieldは、returnと違い、処理を何回かに分けて値を変えることができる。そのため、容量の大きなものに関しては分割できるので、メモリ削減に効果があるらしい。
  • 1