Содржина[Крие][Прикажи]
Ова предавање ќе се протега околу модулите и пакетите во 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 и ја редефинираме. Значи ова е предупредување од Пајтон компајлер дека повеќе не можеме да го користиме max како негова вградена функција.
Вградени модули во Python
Python доаѓа со стандардна библиотека која содржи неколку модули за вообичаени задачи како што се испраќање е-пошта, работа со датум и време, генерирање случајни вредности и лозинки и така натаму. Има толку многу модули веќе вградени во Python што значи дека веќе има многу функционалности што можеме повторно да ги користиме. Можете да ги најдете овие модули овде.
делот пакети
Пакетите се во основа уште еден начин да го организираме нашиот код на врвот на модулите. Вистинскиот проект може да содржи стотици или дури илјадници модули и со текот на времето нашиот директориум ќе се надуе со толку многу датотеки. Затоа, подобар пристап е да се организираат поврзани модули внатре во пакетот што го прави пакетот контејнер за повеќе модули.
Во проектот се додава нов директориум и сите поврзани модули се додаваат во тој директориум. Како пример, помислете на трговски центар. Во трговскиот центар има различни делови за машка, женска и детска облека кои се како пакети. Секој дел има различни области за различни видови производи како чевли, маици и јакни. Сфатете ги овие како модули.
Ајде да видиме како да креираме и користиме пакети во Python.
Прво, додадете нов директориум од панелот на проектот. Да го наречеме „е-трговија“. Овој пакет ќе ги содржи сите модули поврзани со апликација за е-трговија.
Сè уште е празен директориум и за да го претвориме во пакет, треба да создадеме специјална датотека во него. Додајте нова python-датотека во овој директориум и именувајте ја датотеката „__init__“. Тоа е специјална конвенција во Python и кога толкувачот на Python ќе види датотека со ова име во директориумот, тој го третира овој директориум како пакет.
Имаме и алтернативен и концизен метод за создавање пакет. Само кликнете со десното копче на панелот на проектот и креирајте пакет 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()
Заврши!
Пакетите и модулите се исклучително важни во Python. Особено кога сакате да работите со рамка како Django која се користи за градење веб апликации со Python. Ќе го разгледаме Џанго за време на друг курс за Python.
Ова беше последното конвенционално предавање во оваа серија. Следното предавање ќе отстапи од нашиот вообичаен формат и ќе научиме некои важни случаи на употреба во Python. Тоа ќе го означи крајот на оваа серија и ќе продолжиме со нашата следна серија на Python. Останете во тек за тоа.
Оставете Одговор