دا لیکچر به په 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
او د شته دندو لیست ښودلو لپاره "کنټرول + ځای" فشار ورکړئ. د دې سره، موږ کولی شو په مستقیم ډول دا فنکشن ووایو.
تمرين
دلته ستاسو تمرین دی.
دا د لیکچر له تمرین سره تړاو لري چیرې چې موږ بحث وکړ "د لوپونو لپاره" چیرې چې موږ د لیست څخه ترټولو لوی شمیر موندلو لپاره یو پروګرام لیکلی
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 کې جوړ شوي دي پدې معنی چې دلته دمخه ډیری فعالیت شتون لري چې موږ یې بیا کارولی شو. تاسو کولی شئ دا ماډلونه ومومئ دلته.
پيکيجز
کڅوړې اساسا د ماډلونو په سر کې زموږ کوډ تنظیم کولو بله لاره ده. یوه ریښتینې پروژه کولی شي په سلګونو یا حتی په زرګونو ماډلونه ولري او د وخت په تیریدو سره زموږ لارښود به د ډیری فایلونو سره ډک شي. له همدې امله، یوه غوره طریقه د یوې کڅوړې دننه اړونده ماډلونه تنظیم کول دي کوم چې کڅوړه د څو ماډلونو لپاره کانټینر جوړوي.
پروژه ته یو نوی لارښود اضافه شوی او ټول اړوند ماډلونه په دې لارښود کې اضافه شوي. د مثال په توګه، د مال په اړه فکر وکړئ. په مال کې د نارینه وو، ښځو او ماشومانو د جامو لپاره بیلابیلې برخې شتون لري چې د کڅوړو په څیر دي. هره برخه د مختلف ډوله محصولاتو لکه بوټانو ، ټی شرټونو او جاکټونو لپاره مختلف ساحې لري. د دې ماډلونو په توګه فکر وکړئ.
راځئ وګورو چې څنګه په Python کې پیکجونه جوړ او وکاروو.
لومړی، د پروژې پینل څخه نوی لارښود اضافه کړئ. راځئ چې دې ته "ای کامرس" ووایو. دا کڅوړه به د ای کامرس غوښتنلیک پورې اړوند ټول ماډلونه ولري.
دا لاهم یو خالي ډایرکټر دی او په یوه بسته کې د بدلولو لپاره، موږ اړتیا لرو چې په دې کې یو ځانګړی فایل جوړ کړو. په دې ډایرکټر کې د پیتون نوې فایل اضافه کړئ او هغه فایل ته نوم ورکړئ "__init__". دا په Python کې یو ځانګړی کنوانسیون دی او کله چې د Python ژباړونکی په ډایرکټر کې د دې نوم سره فایل وګوري، دا دا ډایرکټر د کڅوړې په توګه چلند کوي.
موږ د کڅوړې جوړولو لپاره یو بدیل او لنډ میتود هم لرو. یوازې د پروژې پینل ښیې کلیک وکړئ او له لیست څخه د Python بسته جوړه کړئ. دې ته "ای کامرس" نوم ورکړئ او بس. دا به په اوتومات ډول د "__init__" په نوم د Python فایل سره لارښود رامینځته کړي.
اوس، راځئ چې په بسته کې یو ماډل جوړ کړو او نوم یې "لیږدول". پدې ماډل کې ، راځئ چې د بار وړلو لګښتونو محاسبه کولو لپاره یو ساده فعالیت رامینځته کړو.
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()
و نغاړئ!
کڅوړې او ماډلونه په Python کې خورا مهم دي. په ځانګړي توګه ، کله چې تاسو غواړئ د جنګو په څیر چوکاټ سره کار وکړئ کوم چې د جوړولو لپاره کارول کیږي ګورت غوښتنلیکونه د Python سره. موږ به د Python بل کورس په جریان کې جینګو ته وګورو.
دا د دې لړۍ وروستی دودیز لیکچر و. راتلونکی لیکچر به زموږ له عادي شکل څخه انحراف وکړي او موږ به په پایتون کې د کارونې ځینې مهمې قضیې زده کړو. دا به د دې لړۍ پای په نښه کړي او موږ به زموږ راتلونکي پیتون لړۍ ته لاړ شو. د دې لپاره پاتې شئ.
یو ځواب ورکړئ ووځي