הצהרת החזרה ב-Python

ההצהרה return של פייתון משמשת להחזיר ערכים מתוך הפונקציה. אנו יכולים להשתמש בהצהרת return רק בתוך פונקציה ב-Python.

פונקציה ב-Python בלעדי return statement

כל פונקציה ב-Python מחזירה משהו. אם לפונקציה אין הצהרת return, אז היא מחזירה None.

def print_something(s):
    print('Printing::', s)


output = print_something('Hi')

print(f'A function without return statement returns {output}')

פלט:

Python Function Without Return Statement

דוגמה על הצהרת return ב-Python

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

def add(x, y):
    result = x + y
    return result


output = add(5, 4)
print(f'Output of add(5, 4) function is {output}')

פלט:

Python Return Example

הצהרת return ב-Python עם ביטוי

אנו יכולים להכליל גם ביטויים בהצהרת return. במקרה כזה, הביטוי מוערך והתוצאה מוחזרת.

def add(x, y):
    return x + y


output = add(5, 4)
print(f'Output of add(5, 4) function is {output}')

פלט:

Python Return Statement With Expression

Python להחזיר בוליאני

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

def bool_value(x):
    return bool(x)


print(f'Boolean value returned by bool_value(False) is {bool_value(False)}')
print(f'Boolean value returned by bool_value(True) is {bool_value(True)}')
print(f'Boolean value returned by bool_value("Python") is {bool_value("Python")}')

פלט:

Python Return Boolean

Python להחזיר מחרוזת

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

def str_value(s):
    return str(s)


print(f'String value returned by str_value(False) is {str_value(False)}')
print(f'String value returned by str_value(True) is {str_value(True)}')
print(f'String value returned by str_value(10) is {str_value(10)}')

פלט:

Python Return String

Python להחזיר Tuple

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

def create_tuple(*args):
    my_list = []
    for arg in args:
        my_list.append(arg * 10)
    return tuple(my_list)


t = create_tuple(1, 2, 3)
print(f'Tuple returned by create_tuple(1,2,3) is {t}')

פלט:

Python Function Return Tuple

קריאה נוספת: Python *args ו־**kwargs

פונקציית Python שמחזירה פונקציה נוספת

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

def get_cuboid_volume(h):
    def volume(l, b):
        return l * b * h

    return volume


volume_height_10 = get_cuboid_volume(10)
cuboid_volume = volume_height_10(5, 4)
print(f'Cuboid(5, 4, 10) volume is {cuboid_volume}')

cuboid_volume = volume_height_10(2, 4)
print(f'Cuboid(2, 4, 10) volume is {cuboid_volume}')

פלט:

Python Return Function

פונקציית Python שמחזירה פונקציה חיצונית

ניתן גם להחזיר פונקציה שהוגדרה מחוץ לפונקציה עם ההצהרת ההחזרה.

def outer(x):
    return x * 10


def my_func():
    return outer


output_function = my_func()
print(type(output_function))

output = output_function(5)
print(f'Output is {output}')

פלט:

Python Function Return Outer Function

החזרת ערכים מרובים ב־Python

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

def multiply_by_five(*args):
    for arg in args:
        yield arg * 5


a = multiply_by_five(4, 5, 6, 8)

print(a)
# הצגת הערכים
for i in a:
    print(i)

פלט:

Python Return vs Yield

סיכום

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

ניתן לבדוק קובץ פייתון שלם ודוגמאות נוספות ב-מאגר הקוד שלנו ב-GitHub.

Source:
https://www.digitalocean.com/community/tutorials/python-return-statement