"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ما هو التطبيق العملي ووظيفة العائد من بناء الجملة في Python 3.3؟

ما هو التطبيق العملي ووظيفة العائد من بناء الجملة في Python 3.3؟

تم النشر بتاريخ 2024-11-08
تصفح:343

What is the Practical Application and Functionality of Yield from Syntax in Python 3.3?

تطبيقات عملية للعائد من بناء الجملة في بايثون 3.3

إنشاء تبادل بيانات شفاف

ينشئ العائد من بناء الجملة اتصالاً مباشرًا بين المتصل والمتصل مولد فرعي، مما يسمح بتدفق البيانات بسلاسة فيما بينها. على عكس حلقات for التقليدية، والتي يمكن أن تنتج قيمًا فقط، فإن العائد من يوفر قناة ثنائية الاتجاه. وهذا مشابه لإنشاء اتصال مؤقت بين مآخذ توصيل العميل، مما يتيح تلقي البيانات وإرسالها.

مثال: قراءة البيانات من المولد

def reader():
    "Simulates reading data from a source"
    for i in range(4):
        yield f"

باستخدام العائد من، يمكننا التكرار عبر منشئ القارئ دون التعامل مع الحلقة يدويًا.

مثال: إرسال البيانات إلى Coroutine

def writer():
    "Simulates writing data to a destination"
    while True:
        w = (yield)
        print(f">>> {w}")

writer_wrapper = writer_wrapper(writer())

for i in range(4):
    wrap.send(i)  # Output: >>> 0, >>> 1, >>> 2, >>> 3

في هذا المثال، يسمح الناتج من بناء الجملة لوظيفة التغليف بإرسال البيانات إلى الكاتب () coroutine، ينشئ تبادلًا مباشرًا للبيانات.

معالجة الاستثناءات

يعالج العائد أيضًا انتشار الأخطاء بشفافية. إذا واجه المولد الفرعي استثناءً، فيمكن إما إعادة طرحه بواسطة المتصل أو معالجته داخل المولد الفرعي.

مثال: معالجة الاستثناء باستخدام SpamException

class SpamException(Exception):
    pass

def writer():
    while True:
        try:
            w = (yield)
        except SpamException:
            print("***")
        else:
            print(f">>> {w}")

writer_wrapper = writer_wrapper(writer())

# Raising an exception within the wrapper
wrap.throw(SpamException)

# Expected Output: ***

يضمن العائد من نشر الاستثناءات بسلاسة، دون الحاجة إلى معالجة الاستثناء يدويًا في وظيفة المجمع.

الاستنتاج

العائد من هو بناء جملة قوي يعمل على تبسيط تنفيذ تبادل البيانات ثنائي الاتجاه بين المتصل والمولدات الفرعية، والتعامل مع الاستثناءات بسلاسة. فهو يوفر طريقة شفافة وفعالة للتواصل بين هذه المكونات، مما يجعله أداة قيمة للتعامل مع سيناريوهات معالجة البيانات المعقدة في Python 3.3 والإصدارات الأحدث.

بيان الافراج أعيد طبع هذه المقالة على: 1729682270 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3