ازگر جنریٹر بنانے اور استعمال کرنے کا طریقہ

Azgr Jnry R Bnan Awr Ast Mal Krn Ka Tryq



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

جنریٹرز کے ساتھ، آپ کسی خاص ترتیب کی اقدار کو میموری میں مکمل طور پر ذخیرہ کیے بغیر بڑے پیمانے پر تیار کر سکتے ہیں۔ مزید برآں، 'جنریٹر' فنکشن ایک ایسی چیز بناتا ہے جو دوبارہ دہرائے جانے پر قدریں پیدا کرتا ہے۔ لہذا، اگر آپ Python جنریٹرز پر ہاتھ اٹھانا چاہتے ہیں، تو یہ ٹیوٹوریل آپ کے لیے ہے۔ یہاں، ہم وضاحت کریں گے کہ Python جنریٹرز کو کیسے بنایا اور استعمال کیا جائے۔

ازگر جنریٹرز کو کیسے بنائیں اور استعمال کریں۔

Python جنریٹرز کو ڈیٹا کی ترتیب پر مؤثر طریقے سے کام کرنے کے لیے استعمال کیا جاتا ہے، خاص طور پر اس وقت جب بڑے یا تقریباً نہ ختم ہونے والے ڈیٹاسیٹس سے نمٹتے ہوں۔ Python جنریٹرز کے فوائد یہ ہیں:







  1. مختصر: آپ جنریٹرز کی آسانی سے مختصر انداز میں وضاحت کر سکتے ہیں جس سے کوڈ پڑھنے کی اہلیت بہتر ہوتی ہے۔
  2. میموری موثر: وہ بیک وقت ایک ہی قدر پیدا کرتے ہیں جس سے میموری کم ہوتی ہے اور کارکردگی بہتر ہوتی ہے۔
  3. بلٹ ان افعال: Python میں، جنریٹرز کے پاس پہلے سے طے شدہ فنکشن ہوتے ہیں جیسے next(), iter()، اور yield اپنے کام کو آسان بنانے کے لیے۔
  4. خصوصیت کو روکیں اور دوبارہ شروع کریں: پیچیدہ الگورتھم پر کام کرتے ہوئے، آپ جنریٹرز کے آپریشن کو روکنے اور دوبارہ شروع کرنے کے لیے 'yield' فنکشن استعمال کر سکتے ہیں۔

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



def func_name ( ) :
پیداوار اظہار

'def' ایک فنکشن کی وضاحت کرتا ہے، اور 'yield' کا استعمال 'جنریٹر' فنکشن بنانے کے لیے کیا جاتا ہے۔ تاہم، ایک اور طریقہ صرف ایک لائن کے اظہار کا استعمال کرتے ہوئے ایک جنریٹر بنانے میں مدد کرتا ہے۔



ایک تار پیدا کرنے کے لیے جنریٹر کا فنکشن

آئیے کچھ قدر حاصل کرنے کے لیے جنریٹر فنکشن کی وضاحت کرتے ہیں:





def جنریٹر ( ) :
پیداوار 'یہ جنریٹر ہے'
کے لیے قدر میں جنریٹر ( ) :
پرنٹ کریں ( قدر )

جب ہم 'for' لوپ کا استعمال کرتے ہوئے اس پر اعادہ کرتے ہیں، تو پروگرام مخصوص ویلیوز تیار کرتا ہے جسے آپ 'پرنٹ' فنکشن کا استعمال کرکے پرنٹ کرسکتے ہیں۔



کاؤنٹر بنانے کے لیے جنریٹر کا فنکشن

درج ذیل پروگرام جنریٹر فنکشن کے لیے اعداد کی ترتیب پیدا کرنے کی مثال ہے۔

def میرا_جنریٹر ( n ) :
کاؤنٹر = 0
جبکہ کاؤنٹر < n:
پیداوار کاؤنٹر
کاؤنٹر + = 1
کے لیے کاؤنٹر میں میرا_جنریٹر ( 10 ) :
پرنٹ کریں ( کاؤنٹر )

مثال کے طور پر، اگر ان پٹ 10 ہے، تو اس کوڈ کو مرتب کرنے پر آپ کو 0 سے 9 تک کی قدریں ملیں گی۔

جنریٹر فنکشن کا استعمال کرتے ہوئے فبونیکی سیریز

آئیے اب فبونیکی سیریز استعمال کریں جو پروگرامنگ میں سب سے بنیادی سیریز ہے:

def سیریز_فبونیکی ( حد ) :
میں ، جے = 0 ، 1
جبکہ میں < حد:
پیداوار میں
میں ، جے = جے ، i + j

a = سیریز_فبونیکی ( 6 )

پرنٹ کریں ( اگلے ( a ) )
پرنٹ کریں ( اگلے ( a ) )
پرنٹ کریں ( اگلے ( a ) )
پرنٹ کریں ( اگلے ( a ) )
پرنٹ کریں ( اگلے ( a ) )
پرنٹ کریں ( اگلے ( a ) )

ہم کوڈ کو چلا کر سیریز اس طرح حاصل کریں گے:

سب سے پہلے، 'a' کے نام سے ایک آبجیکٹ بنائیں اور 'جنریٹر' فنکشن کو بطور دلیل مطلوبہ ان پٹ کے ساتھ کال کریں۔

اگلا() کلیدی لفظ ایک دستی تکرار کرنے والا ہے۔ ہر بار جب ہم اگلا (a) استعمال کرتے ہیں، تو یہ 'a' کی ایک قدر پر اعادہ کرتا ہے۔ تاہم، ہم 'a' کی تمام اقدار کو ایک ساتھ پرنٹ کرنے کے لیے 'for' لوپ کا استعمال کر سکتے ہیں جیسا کہ درج ذیل مثال میں دکھایا گیا ہے۔

اگلے () فنکشن کے بجائے 'for' لوپ کا استعمال:

def سیریز_فبونیکی ( حد ) :
میں ، جے = 0 ، 1
جبکہ میں < حد:
پیداوار میں
میں ، جے = جے ، i + j

a = سیریز_فبونیکی ( 6 )
کے لیے قدر میں a:
پرنٹ کریں ( قدر )

کوڈ کو چلانے کا نتیجہ مختلف نہیں ہوگا کیونکہ یہ پچھلے پروگرام کو لکھنے کا ایک متبادل طریقہ ہے:

ازگر میں جنریٹر کے تاثرات کیا ہیں؟

پائتھون جنریٹر ایکسپریشنز لکیری ایکسپریشنز کا استعمال کرتے ہوئے اختصار کے ساتھ 'جنریٹر' فنکشنز بنانے کا ایک طریقہ ہیں۔ یہاں سادہ نحو ہے:

( اظہار کے لیے متغیر میں قابل تکرار اگر حالت )

مثال کے طور پر، 0 سے 'n' تک طاق نمبروں کے مربعوں کا حساب لگانے کے لیے ایک جنریٹر ایکسپریشن بنائیں جب 'n' ان پٹ ویلیو ہو۔

odd_squares = ( x * x کے لیے ایکس میں رینج ( 10 ) اگر ایکس ٪ 2 != 0 )
کے لیے قدر میں odd_squares:
پرنٹ کریں ( قدر )

پچھلا کوڈ درج ذیل نتیجہ دیتا ہے:

نتیجہ

یہ سب Python جنریٹرز بنانے اور استعمال کرنے کے مختلف طریقوں کے بارے میں ہے۔ ہم نے Python جنریٹر کے اظہار کے بارے میں سب کچھ بیان کیا۔ اگر آپ اپنے کسی پروجیکٹ میں جنریٹر استعمال کرنے پر غور کرتے ہیں تو آپ کو یہ تاثرات استعمال کرنے چاہئیں کیونکہ وہ پروگرامنگ کے ہر پہلو میں زیادہ کارآمد ہیں۔