תשואה של פייתון מול החזרה

Python Yield Vs Return



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

מאמר זה מתאר את ההבדלים בין התשואה לתשואה באמצעות דוגמאות.







הבדלים בין תשואה לתמורה

ראשית, ישנם הבדלים בולטים רבים בין התשואה לתשואה. בואו נדון תחילה במה מדובר.



לַחֲזוֹר תְשׁוּאָה
הצהרת החזרה מחזירה ערך יחיד למתקשר. הצהרת התשואה יכולה להחזיר למתקשר סדרת תוצאות בצורה של אובייקט מחולל.
ההחזר יוצא מהפונקציה, ובמקרה של לולאה, הוא מבטל את הלולאה. זו המשפט האחרון שיוצב בתוך הפונקציה. הוא אינו מבטל את המשתנים המקומיים של הפונקציה. הוא מעכב את הביצוע ושולח את הערך בחזרה למתקשר, וממשיך את ביצוע התוכנית מדוח התשואה האחרון.
באופן הגיוני, לפונקציה צריכה להיות הצהרת החזרה בלבד. בתוך הפונקציה יכולה להיות יותר מהצהרת תשואה אחת.
הצהרת ההחזרה יכולה לפעול פעם אחת בלבד. הצהרת התשואה יכולה לפעול מספר פעמים.
הצהרת ההחזרה ממוקמת בתוך פונקציית Python רגילה. הצהרת התשואה ממירה פונקציה רגילה לפונקציית מחולל.

דוגמה 1: תשואה מול תשואה

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



תוכנית לתצוגת הצהרת ההחזרה

#הגדרת משתנה מספר

מספר 1=10

#הגדרת משתנה מספר

num2=עשרים

#יצירת פונקציה לביצוע פעולות אריתמטיות

def mathOP():

#חישוב ערך הסכום

לַחֲזוֹרמספר 1+num2

#חישוב ההבדל

לַחֲזוֹרמספר 1-num2

#חישוב ערך הכפל

לַחֲזוֹרמספר 1*num2

#חישוב ערך החלוקה

לַחֲזוֹרמספר 1/num2

#calling the function

הדפס(מתמטיקה OP())

תְפוּקָה





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



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

תוכנית לתצוגת הצהרת ההחזרה

#הגדרת משתנה מספר

מספר 1=10

#הגדרת משתנה מספר

num2=עשרים

#יצירת פונקציה לביצוע פעולות אריתמטיות

def sumOP():

#חישוב ערך הסכום

לַחֲזוֹרמספר 1+num2

def subtractOP():

#חישוב ההבדל

לַחֲזוֹרמספר 1-num2

כפל def OP():

#חישוב ערך הכפל

לַחֲזוֹרמספר 1*num2

def division OP():

#חישוב ערך החלוקה

לַחֲזוֹרמספר 1/num2

#calling the function sum

הדפס('ערך הסכום הוא:',sumOP())

#קריאת פונקציית החיסור

הדפס('ערך ההבדל הוא:',להפחית OP())

#calling פונקציית הכפל

הדפס('ערך הכפל הוא:',כפל OP())

#קריאה לפונקציית החלוקה

הדפס('ערך החלוקה הוא:',חטיבה OP())

תְפוּקָה

אנו יכולים לבצע פעולות אריתמטיות מרובות אלה בתוך פונקציית מחולל אחת עם הצהרות תשואה מרובות.

#תוכנית להצגת עבודת הצהרת התשואה

#הגדרת משתנה מספר

מספר 1=10

#הגדרת משתנה מספר

num2=עשרים

#יצירת פונקציה לביצוע פעולות אריתמטיות

def mathOP():

#חישוב ערך הסכום

תְשׁוּאָהמספר 1+num2

#חישוב ההבדל

תְשׁוּאָהמספר 1-num2

#חישוב ערך הכפל

תְשׁוּאָהמספר 1*num2

#חישוב ערך החלוקה

תְשׁוּאָהמספר 1/num2

#calling the function

הדפס('הדפסת הערכים:')

#שימוש בלולאה כדי לגשת לערכים מאובייקט הגנרטור

לאני במתמטיקה OP():

הדפס(אני)

תְפוּקָה

דוגמה 2: החזרה מול התשואה

בואו נראה דוגמא נוספת לדוחות תשואה ותשואה. בדוגמה הנתונה, יש לנו רשימה של מספרים המועברים לפונקציה mod () כארגומנט. אנו מבצעים את פעולת המודולוס בכל מספר רשימות ובודקים מהם אותם מספרים כאשר מחלקים אותם ב- 10 מחזירים אפס כערך שארית.

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

#הגדרת רשימת מספרים

myList=[10,עשרים,25,30,35,40,חמישים]

#הגדרת פונקציה לביצוע פעולת המודולוס

mod mod(myList):

לאני ב- myList:

#ביצוע ביצוע מודולוס

אם(אני%10==0):

לַחֲזוֹראני

הדפס(מול(myList))

תְפוּקָה

הצהרת החזרה מחזירה רק את המספר הראשון למתקשר ומסיימת את ביצוע הפונקציה.

כעת, בואו ליישם את אותה הדוגמה בתסריט ה- Python שלנו עם הצהרת התשואה.

#הגדרת רשימת מספרים

myList=[10,עשרים,25,30,35,40,חמישים]

#הגדרת פונקציה לביצוע פעולת המודולוס

mod mod(myList):

לאני ב- myList:

#ביצוע ביצוע מודולוס

אם(אני%10==0):

#הצהרת התשואה

תְשׁוּאָהאני

לאני במוד(myList):

הדפס(אני)

תְפוּקָה

סיכום

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