الكورس

Advertisements

Python Iterators


iterator (المكرر) في Python هو ببساطة كائن object يمكن التكرار عليه – مما يعني أنه يمكنك اجتياز جميع القيم، ويقوم هذا الكائن بإرجاع البيانات ، عنصر واحد في كل مرة.

الـIterator يحتوي على عدد لا يحصى من القيم.

من الناحية الفنية، يجب أن يطبق كائن الـIterator  فى Python طريقتين خاصتين [() __iter __  و ()__next __ ]، يُطلق عليهما بشكل جماعي iterator protocol.

يسمى الكائن بأنه قابل للتكرار إذا استطعنا الحصول على iterator منه. 


 

Looping Through an Iterator

 

يمكننا استخدام for للتكرار من خلال كائن قابل للتكرار، كالتالى:

# Iterate the values of a 'list'
list = ["one", "two", "three"]

for y in list:
  print(y)

# Iterate the characters of a 'string'
mystr = "one"
  
for y in mystr:
  print(y)

💡 تقوم حلقة for بالفعل بإنشاء كائن iterator وتنفيذ method الـ ()next لكل حلقة.


 

Building Iterators

 

من السهل إنشاء iterator من البداية في Python، يجب عليك فقط تنفيذ هذه الـ methods:

  1. ()__iter __ : يقوم بإرجاع كائن الـiterator نفسه، إذا لزم الأمر ، يمكن إجراء بعض التهيئة.
  2. ()__next __: تقوم بإجراء العمليات ، ويجب أن تُرجع العنصر التالي في التسلسل.

💡 تحتوي جميع الـ classes على function تسمى ()__init __ ، والتي تسمح لك بإجراء بعض التهيئة عند إنشاء الـ object. (ستتعلم المزيد عن __init__ في فصل الـ classes & objects).

 

مثال للتوضيح ( فى هذا المثال تعطى power التالية 2 في كل iterator، يبدأ أس الـ power من صفر إلى رقم مجموعة المستخدم):

class PowTwo:
    def __init__(self, max=0):
        self.max = max

    def __iter__(self):
        self.n = 0
        return self

    def __next__(self):
        if self.n <= self.max:
            result = 2 ** self.n
            self.n += 1
            return result
        else:
            raise StopIteration # To prevent the iteration to go on forever


# create an object
numbers = PowTwo(3)

output:

1
2
4
8
Traceback (most recent call last):
  File "/home/bsoyuj/Desktop/Untitled-1.py", line 32, in <module>
    print(next(i))
  File "<string>", line 18, in __next__
    raise StopIteration
StopIteration

💡 يمكنك أيضًا استخدام حلقة for للتكرار عبر فئة الـ iterator:

for i in PowTwo(5):
  print(i)

 

💡 الزتونة

 

  1. iterator (المكرر) في Python هو ببساطة كائن object يمكن التكرار عليه – مما يعني أنه يمكنك اجتياز جميع القيم، ويقوم هذا الكائن بإرجاع البيانات ، عنصر واحد في كل مرة.
  2. الـIterator يحتوي على عدد لا يحصى من القيم.
  3. يمكنك استخدام for للتكرار من خلال كائن قابل للتكرار.
  4. من السهل إنشاء iterator من البداية في Python، يجب عليك فقط تنفيذ بعض الـ methods وهم [ ()__iter __ و ()__next __ ].

 



الإبلاغ عن خطأ

×

إذا وجد خطأ وتريد الإبلاغ عن هذا الخطأ، أو إذا كنت تريد تقديم اقتراح على شىء معين، فلا تتردد في إرسال بريد إلكتروني إلينا:

[email protected]

شكرًا لك على مساعدتك لنا!

Advertisements