فهم مولدات بيثون
على عكس نموذج خيوط Java ، تخدم المولدات في Python غرضًا متميزًا. عند استدعاء ، يولد المولد سلسلة من القيم واحدة في وقت واحد. بدلاً من حساب وتخزين التسلسل بالكامل في الذاكرة ، تعطي المولدات قيمًا عند الطلب.فكر في المثال التالي:
العائد ن العائد n 1 يدعو my_gen (6) ينشئ كائنًا يعطي القيم 6 و 7 عند التكرار من خلال:
g = my_gen (6) التالي (ز) # الإخراج: 6 التالي (ز) # الإخراج: 7
للحلقات اتصل تلقائيًا التالي لك ، مما يجعل من السهل التكرار على التسلسل:
def my_gen(n): yield n yield n 1
فوائد المولدات
g = my_gen(6) next(g) # Output: 6 next(g) # Output: 7
تقدم المولدات عدة مزايا:
for n in my_gen(6): print(n) # Output: # 6 # 7
الذاكرة الكفاءة: عن طريق توليد القيم عند الطلب ، تجنب المولدات تخصيص الذاكرة غير الضرورية لتخزين تسلسلات كبيرة. هذا مفيد بشكل خاص عند التعامل مع تدفقات البيانات التي من شأنها أن تطغى على الذاكرة. على سبيل المثال ، يمكن إنشاء أرقام Fibonacci إلى أجل غير مسمى:
def fib (): أ ، ب = 0 ، 1 بينما صحيح: استحوذ على أ a ، b = b ، a b
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3