Một generator là một hàm sinh ra giá trị một cách lười, mỗi lần một giá trị, dùng từ khóa yield thay vì return. Nó tính toán mỗi giá trị theo nhu cầu thay vì xây dựng toàn bộ kết quả trong bộ nhớ — lý tưởng cho các chuỗi lớn hoặc vô hạn.
yield so với return
():
[i ** i (n)]
():
i (n):
i **
sq gen_squares():
(sq)
