39 lines
2.2 KiB
Markdown
39 lines
2.2 KiB
Markdown
---
|
||
title: Python Iterators
|
||
localeTitle: بايثون ايتراتورز
|
||
---
|
||
تدعم بايثون مفهوم التكرار على الحاويات. يتم تنفيذ ذلك باستخدام طريقتين متميزتين. يتم استخدام هذه للسماح الفئات المعرفة من قبل المستخدم لدعم التكرار.
|
||
|
||
[Python Docs - Iterator Types](https://docs.python.org/3/library/stdtypes.html#iterator-types)
|
||
|
||
التكرار هو عملية تكرار خطوة برمجية لعدد معين من المرات. يمكن للمبرمج استخدام التكرار لأداء نفس العملية على كل عنصر في مجموعة من البيانات ، على سبيل المثال طباعة كل عنصر في قائمة.
|
||
|
||
* يمكن أن تقوم الكائنات بتنفيذ أسلوب `__iter__()` الذي يقوم بإرجاع كائن مكرر لدعم التكرار.
|
||
|
||
* يجب أن تنفذ كائنات التكرار:
|
||
|
||
* `__iter__()` : إرجاع كائن `__iter__()` .
|
||
|
||
* `__next__()` : إرجاع الكائن التالي للحاوية.
|
||
|
||
|
||
iterator _object = 'abc'. **iter** () طباعة (_ كائن _التكرار_ ) طباعة (id ( _كائن_ التكرار _)) print (id (iterator_ object. **iter** ())) # Returns the iterator itself. print (iterator _object. **next** ()) # Returns 1st object and advances iterator. print (iterator_ object. **next** ()) # Returns 2nd object and advances iterator. طباعة ( _كائن_ التكرار _. **التالي** ()) # إرجاع الكائن الثالث والسلف المكره. print (iterator_ object. **next** ()) # Raises StopIteration Exception.
|
||
|
||
|
||
انتاج :
|
||
|
||
`<str_iterator object at 0x102e196a0>
|
||
4343305888
|
||
4343305888
|
||
a
|
||
b
|
||
c
|
||
---------------------------------------------------------------------------
|
||
StopIteration Traceback (most recent call last)
|
||
<ipython-input-1-d466eea8c1b0> in <module>()
|
||
6 print(iterator_object.__next__()) # Returns 2nd object and advances iterator.
|
||
7 print(iterator_object.__next__()) # Returns 3rd object and advances iterator.
|
||
----> 8 print(iterator_object.__next__()) # Raises StopIteration Exception.
|
||
|
||
StopIteration:
|
||
` |