العبارة `return` في بايثون تُستخدم لإرجاع القيم من الدالة. يمكننا استخدام عبارة الـ `return` في دالة فقط، ولا يمكن استخدامها خارج دالة بايثون.
دالة بايثون بدون عبارة الـ `return`
كل دالة في بايثون تقوم بإرجاع شيء. إذا لم تحتوي الدالة على عبارة `return`، فإنها ترجع None
.
def print_something(s):
print('Printing::', s)
output = print_something('Hi')
print(f'A function without return statement returns {output}')
الناتج:

مثال على عبارة الـ `return` في بايثون
يمكننا القيام ببعض العمليات في دالة وإرجاع النتيجة إلى المستدعي باستخدام عبارة الـ `return`.
def add(x, y):
result = x + y
return result
output = add(5, 4)
print(f'Output of add(5, 4) function is {output}')
الناتج:

عبارة الـ `return` في بايثون مع تعبير
يمكننا أيضًا وجود تعابير في عبارة الـ `return`. في هذه الحالة، يتم تقييم التعبير ويتم إرجاع النتيجة.
def add(x, y):
return x + y
output = add(5, 4)
print(f'Output of add(5, 4) function is {output}')
الناتج:

Python إرجاع boolean
لنلق نظرة على مثال حيث سنقوم بإرجاع القيمة البولية للوسيط في دالة. سنستخدم دالة 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 إرجاع string
لنلق نظرة على مثال حيث ستقوم دالتنا بإرجاع التمثيل النصي للوسيط. يمكننا استخدام دالة 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 إرجاع 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 *args و **kwargs
وظيفة Python تُرجع وظيفة أخرى
يمكننا أيضًا إرجاع وظيفة من البيان return. هذا مشابه لـ 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.
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
إذا كنت ترغب في إرجاع قيم متعددة من دالة، يمكنك إرجاع tuple، list، أو كائن dictionary حسب احتياجك. ومع ذلك، إذا كان عليك إرجاع عدد كبير من القيم، فإن استخدام التسلسل يعتبر عملية تستهلك الكثير من الموارد. يمكننا استخدام 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)
Output:

الملخص
تُستخدم عبارة العودة في Python لإرجاع الناتج من دالة. تعلمنا أيضًا أنه يمكننا أيضًا إرجاع دالة من دالة أخرى. أيضًا، يتم تقييم التعبيرات ثم يتم إرجاع النتيجة من الدالة.
يمكنك مراجعة النص البرمجي الكامل لـ Python ومزيد من أمثلة Python من خلال مستودع GitHub الخاص بنا.
Source:
https://www.digitalocean.com/community/tutorials/python-return-statement