সি-তে, একটি ফাংশন থেকে একাধিক রিটার্ন মান প্রদান করা বেশ ক্লান্তিকর, কিন্তু পাইথনে, এটি করা খুব সহজ।
কমা দ্বারা পৃথক রিটার্ন
পাইথনে, আপনি কেবল স্ট্রিং বা সংখ্যার একটি কমা-বিচ্ছিন্ন তালিকা ফেরত দিতে পারেন।
একটি উদাহরণ হিসাবে, একটি ফাংশন সংজ্ঞায়িত করুন যেটি শুধুমাত্র একটি স্ট্রিং এবং একটি সংখ্যা প্রদান করে যা নীচে দেখানো হয়েছে, প্রতিটি রিটার্নের পরে একটি কমা দ্বারা পৃথক করা হয়েছে৷
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'>