เจเนอเรเตอร์ คือฟังก์ชันที่สร้างค่า อย่างช้า ๆ ทีละค่า โดยใช้คีย์เวิร์ด yield แทน return เจเนอเรเตอร์คำนวณค่าแต่ละค่าตามความต้องการแทนที่จะสร้างผลลัพธ์ทั้งหมดในหน่วยความจำ — เหมาะสำหรับลำดับขนาดใหญ่หรือไม่มีที่สิ้นสุด
yield vs return
():
[i ** i (n)]
():
i (n):
i **
sq gen_squares():
(sq)
