textarea is empty

‎تكرار كننده هاي پايتون ـPython Iterators

Previous >    <Next  

‎يك تكراركننده شئ است كه شامل تعداد قابل شمارش از مقادير است .روي آن ميتوان تكرارانجام ‎داد، بدين معني كه روي مقادير آن ميتوان پيمايش ويا دور زد.

‎ازنظر فني ، در پايتون يك تكرار كننده شئ است كه پروتكل تكرار‎(Iterator)‎ را پياده ‎سازي ميكند.، كه شامل متدهاي‎ __next__()‎‎ و ‎__iter__()‎‎ است.

Iterable‎در مقابل Iterator

‎ليست ها، تاپل ها، ديكشنري ها ومجموعه ها، همگى اشياء تكرار پذيري هستند، كه ميتوانيد ازآنها ‎يك تكرار كننده‎(Iterator)‎ دريافت كنيد.

‎همه اين اشياء دارا يك متد‎iter()‎‎ هستند كه ميتوان با آن از آنها يك تكرار كننده ‎دريافت كرد.

‎مثال ـ دريافت يك تكرار كننده از يك تاپل وجاپ مقادير آن

--(go to editor for change code and run)

‎حتي رشته ها اشياء تكرار پذيري هستند وميتوانند يك تكرار كننده برگشت دهند.

‎مثال ـ رشته ها اشياء تكرار پذيرند، آنها شامل دنباله از كراكترها ميباشند.

--(go to editor for change code and run)

‎حلقه زدن روي يك تكرار كننده

‎ميتوان با استفاده از حلقه‎for ‎ روي شئ تكرار پذير دور زد .

‎مثال ـ روي مقادير يك تاپل دور زده ومقادير را چاپ ميكند.

--(go to editor for change code and run)

‎مثال ـ گردش روي رشته وجاپ كراكترهاي آن

--(go to editor for change code and run)

‎حلقه‎for‎ در واقع يك شئ تكرار كننده ساخته و متد‎next()‎‎ را براي ‎حلقه اجرا ميكند.

‎ايجاد يك تكرار كننده ـCreate an Iterator

‎براي ايجاد شئ يا كلاس بعنوان يك تكرار كننده بايد متدهاي‎__iter__()‎ ‎و ‎__next__()‎‎را در شئ پياده سازي كنيد .

‎همانطوريكه در فصل‎Python Object/Classes‎ ‎مشاهده كرده ايد، همه كلاس ها تابعي بنام‎__init__()‎‎ دارند كه به شما امكان ‎ميدهد هنگام ايجاد شئ مقدار دهي اوليه انجام دهيد.

‎متد‎__iter__()‎‎ نيز به همين شكل عمل ميكند، مي توانيد عمليات‎)‎ مقدار ‎دهي اوليه و غيره‎(‎ را انجام دهيد .اما هميشه بايد خود شئ تكرار كننده را برگرداند

‎متد‎__next__()‎‎ همچنين به شما امكان انجام عمليات را ميدهد ومورد بعدي را ‎در دنباله بر ميگرداند.

‎مثال ـ يك تكرار كننده ايجاد ميكند كه اعداد را برميگرداند .از‎1‎ شروع شده و در ‎دنباله يكي افزايش مي يابد.

--(go to editor for change code and run)

‎توقف تكرار ـStopIteration

‎مثال بالا اگر به اندازه كافي دستور‎next()‎‎ داشته باشيد، يا اگر در يك حلقه for ‎استفاده شود، تا ابد ادامه خواهد داشت.

‎براي جلوگيري از ادامه بي پايان آن ، مي توانيم از دستور‎StopIteration‎ استفاده ‎كنيم.

‎در متد‎__net__()‎‎ مي توانيم يك شرط خاتمه اضافه كنيم تا درصورت انجام تكرار ‎به تعداد مشخص ، خطا ايجاد شود.

‎مثال ـ توقف بعد از‎20‎ تكرار

--(go to editor for change code and run)


Previous >    <Next