Šī lekcija aptvers Python moduļus un paketes.
Tie ir veids, kā sakārtot kodu failu veidā, un tie ir ļoti svarīgi, ja plānojat veidot tīmekļa lietojumprogrammas ar Python.
Moduļi
Python modulis būtībā ir fails ar python kodu, ko mēs izmantojam, lai sakārtotu savu kodu failos. Padomājiet par to kā par sadaļām lielveikalā. Dodoties uz lielveikalu, ir dažādas sadaļas augļiem, dārzeņiem, tīrīšanas līdzekļiem utt. Jūs neredzat vienu sadaļu ar visiem produktiem.
Tas ir tas pats jēdziens programmēšanā. Tā vietā, lai failā main.py rakstītu visu kodu ar visām funkcijām un klasēm, mēs kodu sadalām vairākos failos. Katrs fails tiek saukts par moduli. Tādējādi mūsu kods ir ne tikai labāk organizēts un strukturēts, bet arī iespēja atkārtoti izmantot savu kodu. Apskatīsim to, izmantojot piemēru.
Definēsim divas funkcijas svara konvertēšanai no mārciņām uz kilogramiem un otrādi.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
Tagad mēs varam ņemt šīs divas funkcijas un ievietot tās atsevišķā modulī ar nosaukumu “pārveidotāji”, un pēc tam to var importēt jebkurā programmā, kurai nepieciešamas šīs pārveidotāja funkcijas. Ļaujiet man parādīt, kā to izdarīt.
Atvērsim mūsu projekta paneli un ar peles labo pogu noklikšķiniet uz projekta un pievienosim jaunu failu. Mēs nosauksim šo failu par “Converters.py”.
Tagad nokopējiet kodu no noklusējuma faila un ielīmējiet to "Converters.py".
Ar to mēs esam iztīrījuši savu galveno moduli, un tas nav pārpildīts ar dažādām funkcijām. Kad mēs rakstām vairāk funkciju ar klasēm, mēs tās ievietojam to atbilstošajos moduļos. Modulim jāsatur visas saistītās funkcijas un klases. Tagad mēs vēlamies importēt pārveidotāju moduli mūsu lietotņu modulī. Lai to izdarītu, rakstiet import converters
augšpusē bez paplašinājuma “.py”.
Mēs varam piekļūt moduļa dalībniekiem, izmantojot punktu operatoru, kas ir līdzīgs metodēm.
Pārvērsim 70 kg mārciņās:
Ir arī cita sintakse moduļu importēšanai. Tā vietā, lai importētu visu moduli, mēs varam importēt noteiktas funkcijas no šī moduļa. Mēs varam rakstīt from Converters import
un nospiediet “control + atstarpe”, lai parādītu pieejamo funkciju sarakstu. Ar to mēs varam tieši izsaukt šo funkciju.
Izmantot
Šeit ir jūsu vingrinājums.
Tas ir saistīts ar vingrinājumu no lekcijas, kurā mēs apspriedām “cilpām” kur mēs uzrakstījām programmu, lai uzzinātu lielāko skaitu no saraksta
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Šim kodam pašlaik nav organizācijas. Mums nav nekādu funkciju vai moduļu, un programma ir ierakstīta vienā failā. Tas ir pareizi mazām programmām, taču, programmām augot, kods ir pareizi jāsakārto klasēs un moduļos. Tāpēc šī uzdevuma ietvaros es vēlos, lai jūs uzrakstītu funkciju, nosauciet to find_max
. Šai funkcijai ir jāuzņem saraksts un jāatgriež lielākais skaitlis šajā sarakstā. Pēc tam turpiniet un ievietojiet šo funkciju atsevišķā modulī, izvelciet to no šejienes un ievietojiet modulī ar nosaukumu utils
. Šajā modulī ir jāietver virkne utilītu funkciju. Importēt utils
moduli pašreizējā modulī un zvaniet find_max
funkciju. Visbeidzot iegūstiet rezultātu un izdrukājiet to terminālī.
Šis vingrinājums ir nedaudz sarežģīts, bet viegli izpildāms.
Šķīdums
Sāciet ar funkcijas definēšanu find_max
un pievienojiet parametru, ko sauc par cipariem. Šajā funkcijā ierakstiet algoritmu lielākā skaitļa atrašanai sarakstā.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
Saglabājiet šo kodu failā “utils.py” kā moduli.
Atgriežoties pie mūsu galvenās programmas, vienkārši importējiet moduli, izmantojot vienu no abām sintaksēm, un vienkārši izpildiet loģiku.
Viena lieta, kurai man ir jāpievērš jūsu uzmanība, ir iedragātais max
. Iemesls tam ir max
ir Python iebūvēta funkcija, un mēs to definējam no jauna. Tātad šis ir brīdinājums no Python kompilators ka mēs vairs nevaram izmantot max kā tā iebūvēto funkciju.
Python iebūvētie moduļi
Python ir aprīkots ar standarta bibliotēku, kurā ir vairāki moduļi izplatītiem uzdevumiem, piemēram, e-pasta sūtīšanai, darbam ar datumu un laiku, nejaušu vērtību un paroļu ģenerēšanai un tā tālāk. Python jau ir iebūvēts tik daudz moduļu, kas nozīmē, ka jau ir daudz funkcionalitātes, ko varam izmantot atkārtoti. Jūs varat atrast šos moduļus šeit.
Paketes
Paketes būtībā ir vēl viens veids, kā sakārtot mūsu kodu virs moduļiem. Reālā projektā var būt simtiem vai pat tūkstošiem moduļu, un laika gaitā mūsu direktorijā būs tik daudz failu. Tāpēc labāka pieeja ir saistītus moduļus organizēt pakas iekšpusē, kas padara paketi par konteineru vairākiem moduļiem.
Projektam tiek pievienots jauns direktorijs, un visi saistītie moduļi tiek pievienoti šim direktorijam. Piemēram, iedomājieties tirdzniecības centru. Tirdzniecības centrā ir dažādas vīriešu, sieviešu un bērnu apģērbu sadaļas, kas ir kā iepakojumi. Katrā sadaļā ir dažādas zonas dažādu veidu produktiem, piemēram, apaviem, t-krekliem un jakām. Uztveriet tos kā moduļus.
Apskatīsim, kā Python izveidot un izmantot pakotnes.
Vispirms pievienojiet jaunu direktoriju no projekta paneļa. Sauksim to par “e-komerciju”. Šajā pakotnē būs visi ar e-komercijas lietojumprogrammu saistītie moduļi.
Tas joprojām ir tukšs direktorijs, un, lai to pārveidotu par pakotni, mums tajā ir jāizveido īpašs fails. Pievienojiet jaunu python failu šajā direktorijā un nosauciet šo failu “__init__”. Tā ir īpaša Python konvencija, un, kad Python tulks direktorijā redz failu ar šādu nosaukumu, tas šo direktoriju uzskata par pakotni.
Mums ir arī alternatīva un kodolīga metode paketes izveidošanai. Vienkārši ar peles labo pogu noklikšķiniet uz projekta paneļa un sarakstā izveidojiet Python pakotni. Nosauciet to par "e-komerciju", un viss. Tas automātiski izveidos direktoriju ar Python failu ar nosaukumu “__init__”.
Tagad pakotnē izveidosim moduli un nosauksim to “piegāde”. Šajā modulī izveidosim vienkāršu funkciju piegādes izmaksu aprēķināšanai.
def calc_shipping():
print("calc_shipping")
Lai piekļūtu šai funkcijai mūsu galvenajā modulī, mums tai ir jāpiekļūst, izmantojot e-komercijas pakotni. Atkal mums ir divas metodes šī moduļa importēšanai.
Pirmajā metodē mēs varam importēt visu moduli un pēc tam neatkarīgi izsaukt funkciju šādi:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
Tomēr, izmantojot šo pieeju, lai izsauktu kādu no šī moduļa funkcijām, ir nepieciešams tai pievienot prefiksu ar eCommerce.shipping.
Tas ir ļoti runīgs. Tātad, strādājot ar pakotnēm, mēs bieži izmantojam otro pieeju un izmantojam from
paziņojums, apgalvojums.
from eCommerce.shipping import calc_shipping
calc_shipping()
Ja vienā modulī ir vairākas funkcijas, varat tās visas importēt vienā rindā, starp tām izmantojot komatus. Pieņemsim, ka mūsu piegādes modulī ir cita funkcija nodokļu aprēķināšanai. Tas tiks importēts šādi:
from eCommerce.shipping import calc_shipping, calc_tax
Varat arī importēt atsevišķus moduļus un atstāt funkcijas, kas tiks izsauktas vēlākā programmas posmā. Importēsim moduļa piegādi un pēc tam izmantosim punktu operatoru, lai izsauktu funkciju calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Satīt!
Paketes un moduļi Python ir ārkārtīgi svarīgi. It īpaši, ja vēlaties strādāt ar tādu sistēmu kā Django, kas tiek izmantota būvniecībai tīmekļa lietojumprogrammas ar Python. Mēs apskatīsim Django citā Python kursa laikā.
Šī bija pēdējā konvencionālā lekcija šajā sērijā. Nākamā lekcija novirzīsies no mums ierastā formāta, un mēs uzzināsim dažus svarīgus Python lietošanas gadījumus. Tas iezīmēs šīs sērijas beigas, un mēs pāriesim pie nākamās Python sērijas. Sekojiet līdzi tam.
Atstāj atbildi