Generator Expression

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 ៕