Бул лекция 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 + боштук" баскычтарын басыңыз. Муну менен биз бул функцияны түз чакыра алабыз.
көнүгүү
Мына сиздин көнүгүүңүз.
Бул биз талкуулаган лекциянын көнүгүүсүнө байланыштуу "илмек үчүн” Бул жерде биз тизмеден эң чоң санды табуу үчүн программа жаздык
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до пакеттерди кантип түзүүнү жана колдонууну карап көрөлү.
Биринчиден, долбоор панелинен жаңы каталогду кошуңуз. Аны "электрондук коммерция" деп атайлы. Бул пакетте электрондук коммерция колдонмосуна тиешелүү бардык модулдар камтылат.
Бул дагы эле бош каталог жана аны пакетке айландыруу үчүн биз анда атайын файл түзүшүбүз керек. Бул каталогго жаңы 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до абдан маанилүү. Айрыкча, сиз куруу үчүн колдонулган Django сыяктуу алкак менен иштөөнү кааласаңыз веб тиркемелер Python менен. Биз дагы бир Python курсунда Джангону карайбыз.
Бул бул сериядагы акыркы шарттуу лекция болду. Кийинки лекция биздин кадимки форматтан четтеп кетет жана биз Pythonдо кээ бир маанилүү колдонуу учурларын үйрөнөбүз. Бул бул сериянын аяктайт жана биз кийинки Python сериябызга өтөбүз. Бул үчүн күтө туруңуз.
Таштап Жооп