ازگر کی پیداوار۔

Python Yield



ییلڈ ایک ازگر بلٹ ان کلیدی لفظ ہے جو فنکشن سے ویلیو لوٹاتا ہے۔ فنکشن پر عملدرآمد ختم نہیں ہوا ہے۔ بلکہ ، یہ کال کرنے والے کو قیمت لوٹاتا ہے اور فنکشن کی پھانسی کی حالت کو برقرار رکھتا ہے۔ فنکشن پر عملدرآمد آخری پیداوار بیان سے دوبارہ شروع کیا گیا ہے۔ پیداوار ہمیں ایک قدر کے بجائے اقدار کی ترتیب پیدا کرنے کی اجازت دیتی ہے۔ یہ ایک فنکشن باڈی کے اندر استعمال ہوتا ہے۔ وہ فنکشن جس میں یلڈ سٹیٹمنٹ ہوتا ہے اسے جنریٹر فنکشن کہا جاتا ہے۔







مطلوبہ الفاظ حاصل کرنے کے کئی فوائد ہیں۔ مثال کے طور پر ، یہ میموری مختص کو کنٹرول کرتا ہے اور مقامی متغیر حالت کو بچاتا ہے۔ تاہم ، یہ کوڈ کی پیچیدگی کو بڑھاتا ہے۔



یہ مضمون مثال کے ساتھ پیداوار کے مطلوبہ الفاظ کے استعمال کی وضاحت کرتا ہے۔



پیداوار کا نحو۔

پیداوار کا نحو سادہ اور سیدھا ہے۔ یلڈ کا آغاز ییلڈ کی ورڈ اور نحو سے کیا جاتا ہے:





پیداوارقدر

مثالیں

اب ، آئیے بیانات کے استعمال اور کاموں کو سمجھنے کے لیے مثالیں دیکھتے ہیں۔ روایتی طور پر ، ریٹرن کلیدی لفظ پروگرام کے نفاذ کو ختم کرتا ہے اور آخر میں ایک قیمت لوٹاتا ہے ، جبکہ پیداوار اقدار کی ترتیب کو لوٹاتی ہے۔ یہ ویلیو کو میموری میں محفوظ نہیں کرتا اور رن ٹائم پر کال کرنے والے کو ویلیو لوٹاتا ہے۔ نیچے دی گئی مثال میں ، ایک جنریٹر فنکشن لیپ سال کا تعین کرنے کے لیے متعین کیا گیا ہے۔ چھلانگ وہ سال ہے جب چار سے تقسیم ہونے سے بقیہ صفر لوٹتا ہے۔ ییلڈ کی ورڈ کال کرنے والے کو لیپ ایئر کی قیمت لوٹاتا ہے۔ چونکہ اسے لیپ ایئر کی قیمت مل جائے گی ، یہ پروگرام پر عملدرآمد روک دے گا ، قیمت واپس کرے گا ، اور پھر جہاں سے اسے روکا گیا تھا اس پر عملدرآمد دوبارہ شروع کرے گا۔

#لیپ سال کا تعین کرنے کے لیے جنریٹر کا اعلان
دفاعleapfunc(my_list):
کے لیےمیںمیںmy_list:
اگر(میں٪==):
#پیداوار کا استعمال
پیداوارمیں
#سالوں کی فہرست کا اعلان
سال کی فہرست=[2010۔،2011۔،2012۔،2016۔،2020۔،2024۔]
پرنٹ کریں('لیپ ایئر ویلیوز کی پرنٹنگ')
کے لیےایکسمیںleapfunc(سال کی فہرست):
پرنٹ کریں(ایکس)

آؤٹ پٹ۔



آؤٹ پٹ لیپ ایئرز کی سیریز دکھاتا ہے۔

آئیے ایک اور مثال دیکھتے ہیں جہاں جنریٹر کا فنکشن مختلف نمبر اور ڈور دیتا ہے۔

#جنریٹر فنکشن کا اعلان
دفاعmyfunc():
پیداوار 'نشان'
پیداوار 'جان'
پیداوار 'ٹیلر'
پیداوار 'آئیون'
پیداوار 10۔
پیداوار بیس
پیداوار 30۔
پیداوار 40۔
پیداوار پچاس
#کال کرنا اور جنریٹر فنکشن کے ذریعے تکرار کرنا۔
کے لیےمیںمیںmyfunc():
#طباعت اقدار
پرنٹ کریں(میں)

آؤٹ پٹ۔

آئیے ایک جنریٹر فنکشن کو نافذ کرتے ہیں تاکہ اعداد کی ترتیب کی کیوب ویلیو کا حساب لگائیں اور پرنٹ کریں۔ ہم 1 سے 30 تک کیوب ویلیو پیدا کر رہے ہیں۔

#کیوب ویلیو کا حساب لگانے کے لیے جنریٹر فنکشن کا اعلان کرنا۔
دفاعکیلکیوب():
گھنٹے=
#لامحدود جبکہ لوپ۔
جبکہ سچ ہے۔:
#کیلکمیٹنگ کیوب
پیداوارویل * وال * ویل
#قیمت میں اضافہ 1۔
گھنٹے=ویل +
پرنٹ کریں('کیوب اقدار ہیں:')
#جنریٹر فنکشن کو کال کرنا۔
کے لیےمیںمیںکیلکیوب():
اگرمیں>30۔:
توڑ
پرنٹ کریں(میں)

آؤٹ پٹ۔

آؤٹ پٹ کیوب ویلیو 30 سے ​​کم دکھاتا ہے۔

نتیجہ

ییلڈ ایک ازگر کا بلٹ ان کلیدی لفظ ہے جو پروگرام کے نفاذ کو ختم نہیں کرتا اور اقدار کا ایک سلسلہ پیدا کرتا ہے۔ ریٹرن کی ورڈ کے مقابلے میں ، یلڈ کی ورڈ متعدد اقدار پیدا کرتا ہے اور کال کرنے والے کو لوٹاتا ہے۔ یہ مضمون مثالوں کے ساتھ ازگر کی پیداوار کی وضاحت کرتا ہے۔