কম্পিউটার

পাইথন ফাংশন ঠিক কিভাবে বস্তু ফেরত/ফল দেয়?


রিটার্ন স্টেটমেন্টের কারণে একটি পাইথন ফাংশন প্রস্থান করে এবং তার কলারকে একটি মান ফিরিয়ে দেয়। সাধারণভাবে ফাংশনের উদ্দেশ্য হল ইনপুট নেওয়া এবং কিছু ফেরত দেওয়া। একটি ফেরত বিবৃতি, একবার কার্যকর করা হলে, অবিলম্বে একটি ফাংশনের কার্য সম্পাদন বন্ধ করে দেয়, এমনকি যদি এটি ফাংশনের শেষ বিবৃতি নাও হয়।

ফাংশন যা মান ফেরত দেয় সেগুলিকে কখনও কখনও ফলপ্রসূ ফাংশন বলা হয়৷

উদাহরণ

প্রদত্ত কোড নিম্নলিখিত আউটপুট দেয়

def sum(a,b):
     return a+b
sum(5,16)

আউটপুট

21

জেনারেটর

জেনারেটর হল পুনরাবৃত্ত বা পুনরাবৃত্তিযোগ্য যেমন তালিকা এবং টিপল, কিন্তু আপনি শুধুমাত্র একবার তাদের উপর পুনরাবৃত্তি করতে পারেন। কারণ তারা সমস্ত মান মেমরিতে সংরক্ষণ করে না, তারা ফ্লাইতে মানগুলি তৈরি করে:

উদাহরণ

mygenerator = (x*x for x in range(4))
for i in mygenerator:
      print i,

আউটপুট

0 1 4 9

আমরা মাইজেনারেটরে i এর জন্য দ্বিতীয়বার পারফর্ম করতে পারি না যেহেতু জেনারেটর শুধুমাত্র একবার ব্যবহার করা যেতে পারে:তারা 0 গণনা করে, তারপর এটি ভুলে যায় এবং 1, 4 গণনা করে এবং 9 গণনা শেষ করে, একে একে।

ফল

yield হল একটি কীওয়ার্ড যা রিটার্নের মতো ব্যবহার করা হয়, ফাংশনটি একটি জেনারেটর ফেরত না দিলে।

নিম্নলিখিতভাবে জেনারেটর থেকে রিটার্ন অ্যাক্সেস করতে আমরা নিম্নলিখিত কোড ব্যবহার করি

উদাহরণ

def createGenerator():
      for i in range(4):
           yield i*i      #  this code creates a generator
mygenerator = createGenerator()
print(mygenerator) # mygenerator is an object!
# for i in mygenerator:
#      print i,
print(next(mygenerator))
print(next(mygenerator))
print(next(mygenerator))
print(next(mygenerator))
print(next(mygenerator))

আউটপুট

<generator object createGenerator at 0xb71e27fc>
0
1
4
9
Traceback (most recent call last):
  File "yieldgen1.py", line 12, in <module>
    print(next(mygenerator))
StopIteration

ব্যাখ্যা

উপরের উদাহরণে ফলন বিবৃতিটি mygenerator তৈরি করেছে। এটি শুধুমাত্র একবার ব্যবহার করা যেতে পারে। আমরা গণনা করার জন্য next(mygenerator) কমান্ডটি ব্যবহার করি; এটি একবার ব্যবহার করা যেতে পারে:এটি প্রথমে 0 গণনা করে, তারপর এটি সম্পর্কে ভুলে যায় এবং তারপরে এটি 1 গণনা করে, তৃতীয়বার 4 এবং চতুর্থবার এটি 9 গণনা করে, তারপর পঞ্চমবার এটি স্টপআইটারেশনের একটি ত্রুটি তুলে দেয় কারণ তালিকা উপাদানগুলি শেষ হয়ে গেছে।


  1. পাইথন:কিভাবে একটি অভিধান প্রিন্ট করতে হয়

  2. পাইথনে প্যাটার্ন কিভাবে প্রিন্ট করবেন?

  3. পাইথন ফাংশন ঠিক কিভাবে বস্তু ফেরত/ফল দেয়?

  4. কিভাবে একটি Python ফাংশন একটি ফাংশন ফেরত দিতে পারে?