یہ لیکچر Python میں ماڈیولز اور پیکجز کے ارد گرد پھیلے گا۔
یہ آپ کے کوڈ کو فائلوں کی شکل میں ترتیب دینے کا ایک طریقہ ہیں اور اگر آپ Python کے ساتھ ویب ایپلیکیشنز بنانے کا ارادہ رکھتے ہیں تو یہ واقعی اہم ہیں۔
ماڈیولز
Python میں ایک ماڈیول بنیادی طور پر کچھ python کوڈ والی فائل ہے جسے ہم اپنے کوڈ کو فائلوں میں ترتیب دینے کے لیے استعمال کرتے ہیں۔ اسے سپر مارکیٹ کے حصوں کی طرح سوچیں۔ جب آپ کسی سپر مارکیٹ میں جاتے ہیں تو پھلوں، سبزیوں، صفائی ستھرائی کی مصنوعات وغیرہ کے لیے مختلف حصے ہوتے ہیں۔ آپ کو تمام مصنوعات کے ساتھ ایک سیکشن نظر نہیں آتا۔
پروگرامنگ میں بھی یہی تصور ہے۔ main.py میں تمام فنکشنز اور کلاسز کے ساتھ اپنے تمام کوڈ کو لکھنے کے بجائے، ہم اپنے کوڈ کو متعدد فائلوں میں تقسیم کرتے ہیں۔ ہر فائل کو ماڈیول کہا جاتا ہے۔ اس سے نہ صرف ہمارا کوڈ بہتر طور پر منظم اور منظم ہوتا ہے بلکہ ہم اپنے کوڈ کو دوبارہ استعمال کرنے کی صلاحیت بھی رکھتے ہیں۔ آئیے اسے ایک مثال کے ذریعے دیکھتے ہیں۔
آئیے وزن کو پاؤنڈ سے کلوگرام اور اس کے برعکس تبدیل کرنے کے لیے دو افعال کی وضاحت کرتے ہیں۔
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
اب، ہم ان دو فنکشنز کو لے کر انہیں ایک الگ ماڈیول میں رکھ سکتے ہیں جسے "کنورٹرز" کہتے ہیں، اور پھر اسے کسی بھی پروگرام میں امپورٹ کیا جا سکتا ہے جس کو ان کنورٹر فنکشنز کی ضرورت ہو۔ میں آپ کو دکھاتا ہوں کہ یہ کیسے کرنا ہے۔
آئیے اپنے پروجیکٹ پینل کو کھولیں اور پروجیکٹ پر دائیں کلک کریں اور ایک نئی فائل شامل کریں۔ ہم اس فائل کو "Converters.py" کہنے جا رہے ہیں۔
اب پہلے سے طے شدہ فائل سے کوڈ کاپی کریں اور اسے "Converters.py" میں چسپاں کریں۔
اس کے ساتھ، ہم نے اپنے مرکزی ماڈیول کو صاف کر دیا ہے اور یہ مختلف افعال سے پھولا ہوا نہیں ہے۔ جیسا کہ ہم کلاسز کے ساتھ مزید فنکشن لکھتے ہیں، ہم انہیں ان کے متعلقہ ماڈیولز میں رکھتے ہیں۔ ایک ماڈیول میں تمام متعلقہ فنکشنز اور کلاسز ہونی چاہئیں۔ اب، ہم کنورٹرز ماڈیول کو اپنے ایپ ماڈیول میں درآمد کرنا چاہتے ہیں۔ ایسا کرنے کے لئے، لکھیں import converters
ایکسٹینشن کے بغیر سب سے اوپر ".py"۔
ہم طریقوں کی طرح ڈاٹ آپریٹر کا استعمال کرکے ماڈیول کے ممبران تک رسائی حاصل کرسکتے ہیں۔
آئیے 70 کلوگرام کو پاؤنڈ میں تبدیل کریں:
ماڈیولز درآمد کرنے کے لیے ایک اور نحو بھی ہے۔ پورے ماڈیول کو درآمد کرنے کے بجائے، ہم اس ماڈیول سے مخصوص فنکشنز درآمد کر سکتے ہیں۔ ہم ٹائپ کر سکتے ہیں۔ from Converters import
اور دستیاب افعال کی فہرست دکھانے کے لیے "control + space" دبائیں۔ اس کے ساتھ، ہم اس فنکشن کو براہ راست کال کر سکتے ہیں۔
ورزش
یہاں آپ کی مشق ہے.
یہ لیکچر کی ایک مشق سے متعلق ہے جہاں ہم نے بحث کی تھی "لوپس کے لیےجہاں ہم نے فہرست سے سب سے بڑی تعداد معلوم کرنے کے لیے ایک پروگرام لکھا
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
اس کوڈ میں فی الحال کوئی تنظیم نہیں ہے۔ ہمارے پاس کوئی فنکشن یا ماڈیول نہیں ہے اور پروگرام ایک فائل میں لکھا گیا ہے۔ یہ چھوٹے پروگراموں کے لیے ٹھیک ہے لیکن جیسے جیسے آپ کے پروگرام بڑھتے ہیں، آپ کو اپنے کوڈ کو کلاسز اور ماڈیولز میں مناسب طریقے سے ترتیب دینے کی ضرورت ہوتی ہے۔ لہذا، اس مشق کے حصے کے طور پر، میں چاہتا ہوں کہ آپ ایک فنکشن لکھیں، اسے کال کریں۔ find_max
. اس فنکشن کو ایک فہرست لینا چاہئے اور اس فہرست میں سب سے بڑا نمبر واپس کرنا چاہئے۔ اس کے بعد آگے بڑھیں اور اس فنکشن کو ایک الگ ماڈیول میں رکھیں، اسے یہاں سے نکالیں اور اسے ایک ماڈیول میں رکھیں utils
. اس ماڈیول میں افادیت کے افعال کا ایک گروپ ہونا چاہیے۔ درآمد کریں۔ utils
موجودہ ماڈیول میں ماڈیول اور کال کریں۔ find_max
فنکشن آخر میں، نتیجہ حاصل کریں اور اسے ٹرمینل پر پرنٹ کریں۔
یہ مشق تھوڑی مشکل ہے لیکن آسانی سے قابل عمل ہے۔
حل
ایک فنکشن کی وضاحت کرکے شروع کریں۔ find_max
اور نمبرز نامی پیرامیٹر شامل کریں۔ اس فنکشن کے اندر، فہرست میں سب سے بڑی تعداد تلاش کرنے کے لیے الگورتھم لکھیں۔
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
اس کوڈ کو "utils.py" فائل میں بطور ماڈیول محفوظ کریں۔
ہمارے مرکزی پروگرام پر واپس جائیں، صرف دو نحو میں سے کسی ایک کے ذریعہ ماڈیول درآمد کریں اور صرف منطق کو انجام دیں۔
ایک چیز، مجھے آپ کی توجہ اس طرف دلانے کی ضرورت ہے کہ وہ کمزور ہے۔ max
. اس کی وجہ یہ ہے۔ max
Python میں ایک بلٹ ان فنکشن ہے اور ہم اس کی نئی تعریف کر رہے ہیں۔ تو یہ کی طرف سے ایک انتباہ ہے۔ ازگر کمپائلر کہ اب ہم میکس کو اس کے بلٹ ان فنکشن کے طور پر استعمال نہیں کر سکتے۔
ازگر میں بلٹ ان ماڈیولز
Python ایک معیاری لائبریری کے ساتھ آتا ہے جس میں عام کاموں جیسے ای میل بھیجنا، تاریخ اور وقت کے ساتھ کام کرنا، بے ترتیب اقدار اور پاس ورڈ بنانا وغیرہ کے لیے کئی ماڈیولز شامل ہیں۔ Python میں پہلے سے ہی بہت سے ماڈیولز بنائے گئے ہیں جس کا مطلب ہے کہ پہلے سے ہی بہت ساری فعالیت موجود ہے جسے ہم دوبارہ استعمال کر سکتے ہیں۔ آپ یہ ماڈیولز تلاش کر سکتے ہیں۔ یہاں.
پیکجوں کے
پیکجز بنیادی طور پر ہمارے کوڈ کو ماڈیولز کے اوپر ترتیب دینے کا ایک اور طریقہ ہیں۔ ایک حقیقی پروجیکٹ سینکڑوں یا اس سے بھی ہزاروں ماڈیولز پر مشتمل ہو سکتا ہے اور وقت گزرنے کے ساتھ ساتھ ہماری ڈائرکٹری بہت سی فائلوں سے بھر جائے گی۔ لہذا، ایک بہتر طریقہ یہ ہے کہ ایک پیکیج کے اندر متعلقہ ماڈیولز کو منظم کیا جائے جو پیکیج کو متعدد ماڈیولز کے لیے کنٹینر بناتا ہے۔
پروجیکٹ میں ایک نئی ڈائرکٹری شامل کی جاتی ہے اور تمام متعلقہ ماڈیول اس ڈائرکٹری میں شامل کردیئے جاتے ہیں۔ مثال کے طور پر، ایک مال کے بارے میں سوچو. ایک مال میں مردوں، عورتوں اور بچوں کے ملبوسات کے لیے مختلف حصے ہیں جو کہ پیکجز کی طرح ہیں۔ ہر سیکشن میں مختلف قسم کی مصنوعات جیسے جوتے، ٹی شرٹس اور جیکٹس کے لیے مختلف علاقے ہوتے ہیں۔ ان کو ماڈیول سمجھیں۔
آئیے دیکھتے ہیں، Python میں پیکجز بنانے اور استعمال کرنے کا طریقہ۔
سب سے پہلے، پروجیکٹ پینل سے ایک نئی ڈائریکٹری شامل کریں۔ آئیے اسے "ای کامرس" کہتے ہیں۔ اس پیکیج میں ای کامرس ایپلی کیشن سے متعلق تمام ماڈیولز شامل ہوں گے۔
یہ اب بھی ایک خالی ڈائرکٹری ہے اور اسے پیکج میں تبدیل کرنے کے لیے ہمیں اس میں ایک خاص فائل بنانے کی ضرورت ہے۔ اس ڈائرکٹری میں ایک نئی python فائل شامل کریں اور اس فائل کو "__init__" کا نام دیں۔ یہ Python میں ایک خاص کنونشن ہے اور جب Python انٹرپریٹر اس نام کی فائل کو ڈائرکٹری میں دیکھتا ہے، تو وہ اس ڈائرکٹری کو ایک پیکیج کے طور پر دیکھتا ہے۔
ہمارے پاس پیکج بنانے کا ایک متبادل اور جامع طریقہ بھی ہے۔ صرف پروجیکٹ پینل پر دائیں کلک کریں اور فہرست سے ایک ازگر پیکج بنائیں۔ اسے "ای کامرس" کا نام دیں اور بس۔ یہ خود بخود "__init__" نامی ایک ازگر فائل کے ساتھ ایک ڈائرکٹری بنائے گا۔
اب، آئیے پیکج میں ایک ماڈیول بنائیں اور اسے "شپنگ" کا نام دیں۔ اس ماڈیول میں، آئیے شپنگ کے اخراجات کا حساب لگانے کے لیے ایک سادہ فنکشن بنائیں۔
def calc_shipping():
print("calc_shipping")
اپنے مرکزی ماڈیول میں اس فنکشن تک رسائی کے لیے، ہمیں ای کامرس پیکج کے ذریعے اس تک رسائی حاصل کرنی ہوگی۔ ایک بار پھر ہمارے پاس اس ماڈیول کو درآمد کرنے کے دو طریقے ہیں۔
پہلے طریقہ میں، ہم پورے ماڈیول کو درآمد کر سکتے ہیں اور پھر کسی فنکشن کو آزادانہ طور پر اس طرح کال کر سکتے ہیں:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
تاہم، اس نقطہ نظر کے ساتھ، اس ماڈیول میں سے کسی ایک فنکشن کو کال کرنے کے لیے اس کے ساتھ سابقہ لگانے کی ضرورت ہوتی ہے۔ eCommerce.shipping.
یہ بہت لفظی ہے۔ لہذا، پیکجوں کے ساتھ کام کرتے وقت ہم اکثر دوسرا طریقہ استعمال کرتے ہیں اور استعمال کرتے ہیں۔ from
بیان.
from eCommerce.shipping import calc_shipping
calc_shipping()
اگر آپ کے ایک ماڈیول میں متعدد فنکشنز ہیں تو آپ ان سب کو ایک لائن میں ان کے درمیان کوما استعمال کرکے درآمد کرسکتے ہیں۔ ہم کہتے ہیں کہ ہمارے شپنگ ماڈیول میں ٹیکس کا حساب لگانے کا ایک اور فنکشن ہے۔ اسے اس طرح درآمد کیا جائے گا:
from eCommerce.shipping import calc_shipping, calc_tax
آپ انفرادی ماڈیولز بھی درآمد کر سکتے ہیں اور پروگرام کے بعد کے مرحلے پر بلائے جانے والے فنکشنز کو چھوڑ سکتے ہیں۔ آئیے ماڈیول شپنگ درآمد کریں اور پھر فنکشن کو کال کرنے کے لیے ڈاٹ آپریٹر کا استعمال کریں۔ calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
لپیٹ!
پیکجز اور ماڈیولز ازگر میں انتہائی اہم ہیں۔ خاص طور پر، جب آپ Django جیسے فریم ورک کے ساتھ کام کرنا چاہتے ہیں جو عمارت کے لیے استعمال ہوتا ہے۔ ویب ایپلی کیشنز ازگر کے ساتھ۔ ہم ایک اور Python کورس کے دوران Django کو دیکھیں گے۔
یہ اس سلسلے کا آخری روایتی لیکچر تھا۔ اگلا لیکچر ہمارے معمول کی شکل سے ہٹ جائے گا اور ہم Python میں استعمال کے کچھ اہم معاملات سیکھیں گے۔ یہ اس سیریز کے اختتام کو نشان زد کرے گا اور ہم اپنی اگلی Python سیریز کی طرف بڑھیں گے۔ اس کے لیے دیکھتے رہیں۔
جواب دیجئے