আপনি দুটি মান ফিরিয়ে দিতে পারবেন না, তবে আপনি একটি 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()।
আপনি যদি দুটিরও বেশি মান ফিরে পেতে চান তবে a ব্যবহার করে বিবেচনা করুন দুটিরও নামযুক্ত টিপল । এটি ফাংশনটির কলকারীকে নাম অনুসারে ফেরত মানের ক্ষেত্রগুলি অ্যাক্সেস করার অনুমতি দেবে যা আরও পঠনযোগ্য। আপনি এখনও সূচক অনুসারে টিপল আইটেম অ্যাক্সেস করতে পারেন। উদাহরণস্বরূপ Schema.loadsপদ্ধতি Marshmallow এ ফ্রেমওয়ার্ক আয় একটি 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)