Iterator គឺជាវត្ថុដែលជាលទ្ធផលបានមកពីការយក function មានស្រាប់ឈ្មោះ iter() មកប្រើ ដោយផ្តល់ argument ជាវត្ថុដែលជា container ណាមួយអោយវា។ ហើយដើម្បីបង្កើតវត្ថុមានប្រភេទជា iterator យើងត្រូវធ្វើដូចខាងក្រោមនេះ៖
myList = [100, 'profit', True] myIter = iter(myList) print(myIter)
<list_iterator object at 0x0124E658>មួយវិញទៀត ក្រោយពីវត្ថុដែលជា iterator ផ្សេងៗត្រូវបានបង្កើតរួចហើយ បើសិនជាយើងយក function មានស្រាប់ឈ្មោះ next() មកប្រើ ដោយផ្តល់ argument អោយទៅ function នោះជា iterator ណាមួយ យើងនឹងបានលទ្ធផលដូចខាងក្រោមនេះ៖
myList = (100, 'profit', True) myIter = iter(myList) print(next(myIter)) print(next(myIter)) print(next(myIter)) print(next(myIter))
100
profit
True
Traceback (most recent call last):
File "C:/pythonProject/main.py", line 6, in <module>
print(next(myIter))
StopIteration
ដូចនេះយើងឃើញថា គ្រប់ការយក function មានស្រាប់ឈ្មោះ next() មកប្រើដោយផ្តល់ argument ជា iterator ឈ្មោះ myIter អោយទៅ function ឈ្មោះ next() element ណាមួយនៅក្នុងកំរង tuple ឈ្មោះ myList ត្រូវបានយកមកពិនិត្យ។ ហើយនៅពេលដែល function ឈ្មោះ next() ត្រូវបាន call នៅពេលក្រោយៗទៀត element ជាបន្តបន្តាប់នៅក្នុងកំរង tuple នោះត្រូវបានយកមកពិនិត្យជាបន្តបន្ទាប់។ ហើយនៅពេលដែល element នៅក្នុងកំរង tuple ត្រុវបានពិនិត្យអស់ហើយ ការយកfunction ឈ្មោះ next() មកប្រើជាបន្តទៀត បានធ្វើអោយ exception ប្រភេទ StopIteration ត្រូវបានកើតមានឡើង។
សរុបមក ការយល់ដឹងពី iterator មានសារសំខាន់ ក្នុងការយល់ដឹងពីយន្តការរបស់ statement for ដោយហេតុថា នៅពេលដែល statement for ត្រូវយកមកប្រើជាមួយវត្ថុដែលជា container ណាមួយ function មានស្រាប់ឈ្មោះ iter() ក៏ត្រូវបាន call និងទទួលយក argument ដែលជាវត្ថុមានប្រភេទជា container នោះ ដោយស្វ័យប្រវត្តិ ដែលជាប្រការធ្វើអោយវត្ថុមានប្រភេទជា iterator មួយត្រូវបានបង្កើតឡើង។ បន្ទាប់មកទៀត function មានស្រាប់ឈ្មោះ next() ក៏ត្រូវបាន call ដែរ និងទទួលបាន iterator ទើបត្រូវបានបង្កើតនោះជា argument ។ ការយកយក function ឈ្មោះ next() មកប្រើ ត្រូវធ្វើឡើងជាដដែលៗ រហូតដល់ element នៅក្នុងវត្ថុដែលជា container ដើមត្រូវបានពិនិត្យអស់៕













