Indholdsfortegnelse[Skjule][At vise]
Dette foredrag vil spænde rundt om modulerne og pakkerne i Python.
De er en måde at organisere din kode på i form af filer og er virkelig vigtige, hvis du har til hensigt at bygge webapplikationer med Python
Moduler
Et modul i Python er dybest set en fil med noget python-kode, som vi bruger til at organisere vores kode i filer. Tænk på det som sektioner i et supermarked. Når du går i et supermarked er der forskellige sektioner for frugt, grøntsager, rengøringsmidler osv. Du ser ikke en sektion med alle produkterne.
Det er det samme koncept i programmering. I stedet for at skrive al vores kode med alle funktioner og klasser i main.py, opdeler vi vores kode i flere filer. Hver fil omtales som et modul. Med dette er vores kode ikke kun bedre organiseret og struktureret, men vi har også mulighed for at genbruge vores kode. Lad os se det gennem et eksempel.
Lad os definere to funktioner til at konvertere vægt fra pund til kilogram og omvendt.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
Nu kan vi tage disse to funktioner og sætte dem i et separat modul kaldet "konvertere", og så kan det importeres til ethvert program, der har brug for disse konverterfunktioner. Lad mig vise dig, hvordan du gør dette.
Lad os åbne vores projektpanel og højreklikke på projektet og tilføje en ny fil. Vi vil kalde denne fil "Converters.py".
Kopier nu koden fra standardfilen og indsæt den i "Converters.py".
Med dette har vi ryddet op i vores hovedmodul, og det er ikke oppustet med forskellige funktioner. Efterhånden som vi skriver flere funktioner med klasser, sætter vi dem i deres tilsvarende moduler. Et modul skal indeholde alle de relaterede funktioner og klasser. Nu vil vi importere konvertermodulet til vores app-modul. For at gøre dette, skriv import converters
øverst uden udvidelsen ".py".
Vi kan få adgang til medlemmerne af et modul ved at bruge en prikoperator svarende til metoder.
Lad os konvertere 70 kg til pund:
Der er også en anden syntaks til at importere moduler. I stedet for at importere hele modulet, kan vi importere specifikke funktioner fra det modul. Vi kan skrive from Converters import
og tryk på "kontrol + mellemrum for at vise listen over tilgængelige funktioner. Med dette kan vi direkte kalde denne funktion.
Dyrke motion
Her er din øvelse.
Dette er relateret til en øvelse fra foredraget, hvor vi diskuterede "til sløjfer” hvor vi skrev et program for at finde ud af det største antal fra en liste
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Denne kode har i øjeblikket ingen organisation. Vi har ingen funktioner eller moduler, og programmet er skrevet i en enkelt fil. Det er okay for små programmer, men efterhånden som dine programmer vokser, skal du organisere din kode ordentligt i klasser og moduler. Derfor vil jeg som en del af denne øvelse have dig til at skrive en funktion, kald den find_max
. Denne funktion bør tage en liste og returnere det største tal på denne liste. Gå derefter videre og sæt denne funktion i et separat modul, udtræk den herfra og sæt den i et modul kaldet utils
. Dette modul bør indeholde en masse hjælpefunktioner. Importer utils
modul ind i det aktuelle modul og ring find_max
fungere. Få endelig resultatet og print det på terminalen.
Denne øvelse er lidt udfordrende, men let gennemførlig.
Løsning
Start med at definere en funktion find_max
og tilføje en parameter kaldet tal. Inde i denne funktion skal du skrive algoritmen til at finde det største tal på en liste.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
Gem denne kode i en fil "utils.py" som et modul.
Tilbage til vores hovedprogram skal du blot importere modulet med en af de to syntakser og blot udføre logikken.
En ting, jeg skal henlede din opmærksomhed på, er det underminerede max
. Grunden til det er max
er en indbygget funktion i Python, og vi redefinerer den. Så dette er en advarsel fra Python compiler at vi ikke længere kan bruge max som dens indbyggede funktion.
Indbyggede moduler i Python
Python kommer med et standardbibliotek, der indeholder flere moduler til almindelige opgaver såsom at sende e-mails, arbejde med dato og klokkeslæt, generere tilfældige værdier og adgangskoder og så videre. Der er allerede så mange moduler indbygget i Python, hvilket betyder, at der allerede er masser af funktionalitet, som vi kan genbruge. Du kan finde disse moduler link..
Pakker
Pakker er dybest set en anden måde at organisere vores kode oven på modulerne. Et rigtigt projekt kan indeholde hundredvis eller endda tusindvis af moduler, og med tiden vil vores bibliotek blive oppustet med så mange filer. Derfor er en bedre tilgang at organisere relaterede moduler inde i en pakke, hvilket gør pakken til en beholder til flere moduler.
En ny mappe føjes til projektet, og alle de relaterede moduler føjes til den mappe. Som et eksempel, tænk på et indkøbscenter. Der er forskellige sektioner til mænd, kvinder og børnetøj i et indkøbscenter, som er som pakker. Hver sektion har forskellige områder til forskellige slags produkter som sko, t-shirts og jakker. Tænk på disse som moduler.
Lad os se, hvordan man opretter og bruger pakker i Python.
Tilføj først en ny mappe fra projektpanelet. Lad os kalde det "eCommerce". Denne pakke vil indeholde alle de moduler, der er relateret til en e-handelsapplikation.
Det er stadig en tom mappe, og for at konvertere den til en pakke, skal vi oprette en speciel fil i den. Tilføj en ny python-fil i denne mappe og navngiv filen "__init__". Det er en speciel konvention i Python, og når Python-fortolkeren ser en fil med dette navn i en mappe, behandler den denne mappe som en pakke.
Vi har også en alternativ og kortfattet metode til at oprette en pakke. Bare højreklik på projektpanelet og opret en Python-pakke fra listen. Navngiv det "eCommerce", og det er det. Det vil automatisk oprette en mappe med en Python-fil ved navn "__init__".
Lad os nu oprette et modul i pakken og navngive det "forsendelse". Lad os i dette modul oprette en simpel funktion til beregning af forsendelsesomkostninger.
def calc_shipping():
print("calc_shipping")
For at få adgang til denne funktion i vores hovedmodul skal vi tilgå den via e-handelspakken. Endnu en gang har vi to metoder til at importere dette modul.
I den første metode kan vi importere hele modulet og derefter kalde en funktion uafhængigt som dette:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
Men med denne tilgang kræver det at kalde en af funktionerne til dette modul, at den forudsættes med eCommerce.shipping.
Det er meget ordrigt. Så når vi arbejder med pakker, bruger vi ofte den anden tilgang og bruger from
udmelding.
from eCommerce.shipping import calc_shipping
calc_shipping()
Hvis du har flere funktioner i et modul, kan du importere dem alle på en enkelt linje ved at bruge kommaer mellem dem. Lad os sige, at der er en anden funktion til at beregne skat i vores forsendelsesmodul. Det vil blive importeret sådan:
from eCommerce.shipping import calc_shipping, calc_tax
Du kan også importere individuelle moduler og lade funktioner blive kaldt på et senere tidspunkt i programmet. Lad os importere modulet forsendelse og derefter bruge en prikoperatør til at kalde funktionen calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Afslut!
Pakker og moduler er ekstremt vigtige i Python. Især når du vil arbejde med et framework som Django, der bruges til at bygge webapplikationer med Python. Vi vil se nærmere på Django under et andet Python-kursus.
Dette var det sidste konventionelle foredrag i denne serie. Det næste foredrag vil afvige fra vores sædvanlige format, og vi vil lære nogle vigtige use cases i Python. Det vil markere afslutningen på denne serie, og vi går videre til vores næste Python-serie. Hold øje med det.
Giv en kommentar