نحوه برگرداندن چندین مقدار بازگشتی در یک تابع پایتون

کسب و کار

در C، بازگرداندن چندین مقدار بازگشتی از یک تابع بسیار خسته کننده است، اما در پایتون، انجام آن بسیار آسان است.

بازگشت با کاما از هم جدا شده است

در پایتون، می‌توانید به سادگی فهرستی از رشته‌ها یا اعداد جدا شده با کاما را برگردانید.

به عنوان مثال، تابعی را تعریف کنید که فقط یک رشته و یک عدد را مطابق شکل زیر برمی گرداند و هر کدام پس از بازگشت با کاما از هم جدا می شوند.

def test():
    return 'abc', 100

در پایتون، مقادیر جدا شده با کاما، تاپل های بدون پرانتز در نظر گرفته می شوند، مگر در مواردی که از نظر نحوی ضروری باشد. بنابراین، تابع در مثال بالا یک تاپل با هر مقدار به عنوان یک عنصر برمی گرداند.

این کاما است که تاپل را ایجاد می کند، نه براکت های گرد. پرانتزهای گرد را می‌توان حذف کرد، مگر در مواردی که تاپل‌های خالی وجود دارد یا در مواقع ضروری برای جلوگیری از ابهام نحوی.
Built-in Types — Python 3.10.0 Documentation

نوع مقدار بازگشتی یک تاپل است.

result = test()

print(result)
print(type(result))
# ('abc', 100)
# <class 'tuple'>

هر عنصر از نوع تعریف شده توسط تابع خواهد بود.

print(result[0])
print(type(result[0]))
# abc
# <class 'str'>

print(result[1])
print(type(result[1]))
# 100
# <class 'int'>

اگر شاخصی را مشخص کنید که از تعداد مقادیر بازگشتی که تعریف کرده اید بیشتر باشد، خطا دارد.

# print(result[2])
# IndexError: tuple index out of range

می توان آن را باز کرد و چندین مقدار بازگشتی را می توان به متغیرهای جداگانه اختصاص داد.

a, b = test()

print(a)
# abc

print(b)
# 100

اگر بخواهید به جای فقط دو مقدار، سه یا چند مقدار بازگشتی را مشخص کنید، همین امر صدق می کند.

def test2():
    return 'abc', 100, [0, 1, 2]

a, b, c = test2()

print(a)
# abc

print(b)
# 100

print(c)
# [0, 1, 2]

لیستی را برمی گرداند.

[]اگر آن را با این محصور کنید، مقدار بازگشتی به جای یک تاپل، یک لیست خواهد بود.

def test_list():
    return ['abc', 100]

result = test_list()

print(result)
print(type(result))
# ['abc', 100]
# <class 'list'>
Copied title and URL