![]() |
ما هي المولدات في بايثون Python Generators
في بايثون، المولد هو دالة تقوم بإرجاع مكرر ينتج سلسلة من القيم عند تكرارها، وتكون المولدات مفيدة عندما نريد إنتاج تسلسل كبير من القيم، لكننا لا نريد تخزينها جميعًا في الذاكرة مرة واحدة.
كيفية إنشاء مولد بايثون في لغة البرمجة بايثون، على غرار تحديد وظيفة عادية، يمكننا تحديد وظيفة المولد باستخدام الكلمة الأساسية (def)، ولكن بدلاً من عبارة الإرجاع (return)، نستخدم عبارة (yield)، انظر ما يلي: def generator_name(arg): # statements yield something هنا، يتم استخدام الكلمة الأساسية (yield) لإنتاج قيمة من المولد، كما أنه عندما يتم استدعاء وظيفة المولد، فإنها لا تقوم بتنفيذ الوظيفة على الفور، بدلاً من ذلك، تقوم بإرجاع كائن منشئ يمكن تكراره للحصول على القيم، فيما يلي مثال على وظيفة المولد التي تنتج سلسلة من الأرقام: def my_generator(n): # initialize counter value = 0 # loop until counter is less than n while value < n: # produce the current value of the counter yield value # increment the counter value += 1 # iterate over the generator object produced by my_generator for value in my_generator(3): # print each value produced by generator print(value) وتكون المخرجات كالاتي: 0 1 2 ما هي استخدامات مولدات بايثون هناك العديد من الأسباب التي تجعل المولدات تطبيقًا فعالاً: سهلة التنفيذ: يمكن تنفيذ المولدات بطريقة واضحة وموجزة مقارنة بنظيرتها من فئة التكرار. كفاءة الذاكرة: يعد تنفيذ المولد للتسلسلات أمرًا ملائمًا للذاكرة ويفضل لأنه ينتج عنصرًا واحدًا فقط في كل مرة. تمثل التدفق اللانهائي: المولدات هي وسائط ممتازة لتمثيل دفق غير محدود من البيانات، ولا يمكن تخزين التدفقات اللانهائية في الذاكرة، وبما أن المولدات تنتج عنصرًا واحدًا فقط في كل مرة، فإنها يمكن أن تمثل دفقًا لا نهائيًا من البيانات. |
سلمت الأيادي ..
ويعطيك العافية |
يسلمو على روعة طرحك
الله يعطيك العافيه ولك الشكر والتقدير |
طرح جميل
يعطيك العافيه |
-
شُكرًا على جمـال طرحك المميز :x37: لا حرمنا الله من إبداعك المُستمر و الله يعطيكِ الف عافيه . لك :f15: |
موضوع رائع
يعطيكـ العافيهـ \ الف شكر ع طرحك ".بشوق لجديدكـ |
الساعة الآن 12:34 AM |
Powered by vBulletin Hosting By
R-ESHQ
HêĽм √ 3.1 BY: ! RESHQ ! © 2010
new notificatio by R-ESHQ
User Alert System provided by
Advanced User Tagging (Lite) -
vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
تنويه : المشاركات المطروحة تعبر عن وجهة نظر أصحابها وليس بالضرورة تمثل رأي أدارة الموقع