generator は、return の代わりに yield キーワードを使って、値を遅延的に1つずつ生成する関数です。結果全体をメモリ上に構築するのではなく、必要に応じて各値を計算するため、大規模なシーケンスや無限のシーケンスに最適です。
yield と return の違い
python
():
[i ** i (n)]
():
i (n):
i **
sq gen_squares():
(sq)
