תשואת פייתון

Python Yield



Yield היא מילת מפתח מובנית של פייתון המחזירה את הערכים מפונקציה. ביצוע הפונקציה אינו מסתיים. במקום זאת, הוא מחזיר את הערך למתקשר ושומר על מצב הביצוע של הפונקציה. ביצוע הפונקציה מתחדש מדוח התשואה האחרון. התשואה מאפשרת לנו לייצר רצף ערכים ולא ערך אחד. הוא משמש בתוך גוף פונקציונלי. הפונקציה המכילה הצהרת תשואה ידועה בשם פונקציית הגנרטור.







ישנם מספר יתרונות להנפקת מילת מפתח. לדוגמה, הוא שולט בהקצאת הזיכרון ושומר את המצב המשתנה המקומי. עם זאת, זה מגביר את מורכבות הקוד.



מאמר זה מסביר את השימוש במילת המפתח תשואה עם דוגמאות.



תחביר התשואה

תחביר התשואה הוא פשוט ופשוט. התשואה מתחילה עם מילת המפתח ותחביר התשואה כדלקמן:





תְשׁוּאָהערך

דוגמאות

כעת, בואו נראה דוגמאות להבנת השימוש והעבודות של הצהרות תשואה. באופן מסורתי, מילת המפתח return מסיימת את ביצוע התוכנית ומחזירה ערך בסוף, בעוד התשואה מחזירה את רצף הערכים. הוא אינו שומר את הערך בזיכרון ומחזיר את הערך למתקשר בזמן ההפעלה. בדוגמה להלן, מוגדרת פונקציית גנרטור לקביעת שנת המעוברת. זינוק הוא אותה שנה שבה מתחלקים בארבע מחזירים את האפס כשארית. מילת המפתח תשואה מחזירה את הערך של שנה מעוברת למתקשר. מכיוון שהוא יקבל את הערך של שנה מעוברת, הוא ישהה ​​את ביצוע התוכנית, יחזיר את הערך ולאחר מכן ימשיך את הביצוע מהמקום שבו הוא הופסק.

#הכרזת גנרטור לקביעת שנת מעוברת
defleapfunc(הרשימה שלי_):
לאניברשימת שלי_:
אם(אני%4==0):
#שימוש בתשואה
תְשׁוּאָהאני
#הצהרת רשימת השנים
רשימת שנה=[2010,2011,2012,2016,2020,2024]
הדפס('הדפסת ערכי שנת המעוברת')
לאיקסבleapfunc(רשימת שנה):
הדפס(איקס)

תְפוּקָה



התפוקה מציגה את סדרת שנות המעבר.

בואו נראה דוגמא נוספת שבה הפונקציה של הגנרטור מניבה מספרים ומחרוזות שונות.

#הצהרת פונקציית גנרטור
defmyfunc():
תְשׁוּאָה 'סימן'
תְשׁוּאָה 'ג'ון'
תְשׁוּאָה 'טיילור'
תְשׁוּאָה 'איוון'
תְשׁוּאָה 10
תְשׁוּאָה עשרים
תְשׁוּאָה 30
תְשׁוּאָה 40
תְשׁוּאָה חמישים
#קריאה וחזרה באמצעות פונקציית הגנרטור
לאניבmyfunc():
#הדפסת ערכים
הדפס(אני)

תְפוּקָה

בואו ניישם פונקציית מחולל לחישוב והדפסה של ערך הקוביה של רצף המספרים. אנו מייצרים את ערכי הקוביות מ -1 עד 30.

#הצהרת פונקציית גנרטור לחישוב ערך הקוביה
defאבנית():
שעות=1
#לולאת האינסוף
בזמן נָכוֹן:
#קוביית חישוב
תְשׁוּאָהval * val * val
#עליית ערך ב -1
שעות=val +1
הדפס('ערכי הקובייה הם:')
#קריאה לפונקציית הגנרטור
לאניבאבנית():
אםאני>30:
לשבור
הדפס(אני)

תְפוּקָה

הפלט מציג את ערך הקוביה פחות מ -30.

סיכום

Yield היא מילת מפתח מובנית של פייתון שאינה מסיימת את ביצוע התוכנית ויוצרת סדרת ערכים. בהשוואה למילת המפתח Return, מילת המפתח תשואה מייצרת מספר ערכים וחוזרת למתקשר. מאמר זה מסביר את תשואת פייתון בעזרת דוגמאות.