generator expression គឺជា expression មួយប្រភេទ ដែលផ្តល់លទ្ធផលជាវត្ថុមានប្រភេទជា generator ។ យ៉ាងណាម៉ិញ បណ្តា statement ទាំងឡាយមាននៅក្នុង generator expression មាននាទីជារូបមន្តសំរាប់បង្កើតវត្ថុមួយចំនួន។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
myGenerator = (obj + 10 for obj in [1, 2, 3]) print(myGenerator)
<generator object <genexpr> at 0x0354DC30>
មួយវិញទៀត បើសិនណាជាយើងយក generator ដែលត្រូវបានបង្កើតឡើងដោយ generator expression មកប្រើជាមួយនឹង statement for យើងនឹងបានលទ្ធផលដូចខាងក្រោមនេះ៖
myGenerator = (obj + 10 for obj in [1, 2, 3]) for obj in myGenerator: print(obj)
11 12 13
សរុបមក យើងសង្កេតឃើញថា generator expression និង list comprehension មានសណ្ឋានដូចគ្នាបេះបិទ ពោលគឺនៅក្នុងវត្ថុទាំងពីរនេះ សុទ្ធតែមាន expression មួយនិង statement for មួយដូចគ្នា។ ក៏ប៉ុន្តែ ភាពខុសគ្នារវាងវត្ថុទាំងពីរនេះ គឺស្ថិតនៅត្រង់ថា list comprehension ផ្តល់លទ្ធផលជាកំរង list ថ្មី ចំនែកឯ generator expression វិញ ផ្តល់លទ្ធផលជា generator ដែលអាចត្រូវយកទៅប្រើជាមួយនឹង statement for ដើម្បីបង្កើតវត្ថុផ្សេងៗទៀត។
អាស្រ័យហេតុនេះ បើសិនណាជាយើងចង់បង្កើតកំរង list ថ្មី យើងត្រូវប្រើប្រាស់ list comprehension តែបើយើងចង់បង្កើត generator វិញ យើងត្រូវប្រើប្រាស់ generator expression ៕