পাইথনে return স্টেটমেন্ট ফাংশন এক্সিকিউশন শেষ করে কলারকে ভ্যালু রিটার্ন করে। yield কিওয়ার্ড ব্যবহার করে জেনারেটর ফাংশন তৈরি করা যায়, যা লেজি ইভ্যালুয়েশন করে।
১. Return Statement
def sum(a, b):
return a + b
print(sum(5, 16)) # 21
returnএক্সিকিউট होतेই ফাংশন টার্মিনেট হয়।- মান রিটার্ন করা ফাংশনকে ফ্রুইটফুল ফাংশন বলা হয়।
২. Generator Expressions
mygenerator = (x*x for x in range(4))
for i in mygenerator:
print(i, end=' ') # 0 1 4 9
- জেনারেটর একবারই ইটারেট করা যায়।
- মেমরিতে সব ভ্যালু স্টোর করে না, অন-দ-ফ্লাই জেনারেট করে।
৩. Yield Keyword (Generator Function)
def create_generator():
for i in range(4):
yield i * i
mygenerator = create_generator()
print(mygenerator) #
print(next(mygenerator)) # 0
print(next(mygenerator)) # 1
print(next(mygenerator)) # 4
print(next(mygenerator)) # 9
print(next(mygenerator)) # StopIteration exception
ব্যাখ্যা
yieldএনকাউন্টার হলে ফাংশন পজ করা থাকে, স্টেট সংরক্ষণ থাকে।next()কল করলে পরবর্তী ভ্যালু জেনারেট হয়।- সব ভ্যালু শেষ হলে
StopIterationরেইজ হয়। - জেনারেটর মেমরি-এফিশিয়েন্ট বড় ডেটাসেট প্রসেসিংয়ের জন্য আদর্শ।