पायथन फ़ंक्शन में एकाधिक रिटर्न मान कैसे वापस करें

व्यापार

सी में, एक फ़ंक्शन से कई रिटर्न वैल्यू वापस करना काफी कठिन है, लेकिन पायथन में, यह करना बहुत आसान है।

अल्पविराम द्वारा अलग किया गया रिटर्न

पायथन में, आप केवल स्ट्रिंग्स या संख्याओं की अल्पविराम से अलग की गई सूची वापस कर सकते हैं।

एक उदाहरण के रूप में, एक फ़ंक्शन को परिभाषित करें जो नीचे दिखाए गए अनुसार केवल एक स्ट्रिंग और एक संख्या देता है, प्रत्येक वापसी के बाद अल्पविराम से अलग होता है।

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'>