आप दो मानों वापस नहीं लौट सकते, लेकिन आप एक tuple
या एक list
लौट सकते हैं और कॉल के बाद खोल दे सकते हैं:
def select_choice():
...
return i, card # or [i, card]
my_i, my_card = select_choice()
पर लाइन return i, card
i, card
का मतलब है एक ट्यूपल बनाना। आप return (i, card)
जैसे ब्रांड्स का उपयोग भी कर सकते हैं, लेकिन कॉमा द्वारा टुपल्स बनाए जाते हैं, इसलिए माता-पिता अनिवार्य नहीं होते हैं। लेकिन आप अपने कोड को अधिक पठनीय बनाने या एकाधिक लाइनों पर ट्यूपल को विभाजित करने के लिए माता-पिता का उपयोग कर सकते हैं। यह लाइन my_i, my_card = select_choice()
पर लागू होता है।
यदि आप दो से अधिक मान वापस करना चाहते हैं, तो named tuple का उपयोग करने पर विचार करें। यह फ़ंक्शन के कॉलर को नाम से लौटाए गए मान के फ़ील्ड तक पहुंचने की अनुमति देगा, जो अधिक पठनीय है। आप अभी भी इंडेक्स द्वारा टुपल की वस्तुओं तक पहुंच सकते हैं। उदाहरण के लिए Schema.loads
विधि में मार्शमलो फ्रेमवर्क UnmarshalResult
देता है जो namedtuple
है। तो अगर आप कर सकते हैं:
data, errors = MySchema.loads(request.json())
if errors:
...
या
result = MySchema.loads(request.json())
if result.errors:
...
else:
# use `result.data`
अन्य मामलों में आप अपने समारोह से एक dict
वापस आ सकते हैं:
def select_choice():
...
return {'i': i, 'card': card, 'other_field': other_field, ...}
लेकिन अगर आप एक का एक उदाहरण वापस जाने के लिए विचार करना चाहते हो सकता है यूटिलिटी क्लास, जो आपके डेटा को लपेटती है:
class ChoiceData():
def __init__(self, i, card, other_field, ...):
# you can put here some validation logic
self.i = i
self.card = card
self.other_field = other_field
...
def select_choice():
...
return ChoiceData(i, card, other_field, ...)
choice_data = select_choice()
print(choice_data.i, choice_data.card)
इस उम्मीद फ़ंक्शन को कॉल और, अपनी वापसी मूल्य (रों) का उपयोग करते हुए इतना है कि यह स्पष्ट करता है तुम क्यों tuples नहीं करना चाहते का एक उदाहरण प्रदान करें। – bereal
जबकि लूप का क्या मतलब है? –
में वापसी बयान –