Innholdsfortegnelse[Gjemme seg][Forestilling]
Denne forelesningen vil spenne over modulene og pakkene i Python.
De er en måte å organisere koden din på i form av filer og er veldig viktige hvis du har tenkt å bygge nettapplikasjoner med Python
Moduler
En modul i Python er i utgangspunktet en fil med en eller annen python-kode som vi bruker til å organisere koden vår i filer. Tenk på det som seksjoner i et supermarked. Når du går til et supermarked er det forskjellige seksjoner for frukt, grønnsaker, rengjøringsprodukter osv. Du ser ikke en seksjon med alle produktene.
Det er det samme konseptet i programmering. I stedet for å skrive all koden vår med alle funksjoner og klasser i main.py, deler vi opp koden vår i flere filer. Hver fil blir referert til som en modul. Med dette er ikke bare koden vår bedre organisert og strukturert, men vi har også muligheten til å gjenbruke koden vår. La oss se det gjennom et eksempel.
La oss definere to funksjoner for å konvertere vekt fra pund til kilo og omvendt.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
Nå kan vi ta disse to funksjonene og sette dem i en egen modul kalt "omformere", og så kan den importeres til et hvilket som helst program som trenger disse omformerfunksjonene. La meg vise deg hvordan du gjør dette.
La oss åpne prosjektpanelet vårt og høyreklikke på prosjektet og legge til en ny fil. Vi skal kalle denne filen "Converters.py".
Kopier nå koden fra standardfilen og lim den inn i "Converters.py".
Med dette har vi ryddet opp i hovedmodulen vår, og den er ikke oppblåst med forskjellige funksjoner. Etter hvert som vi skriver flere funksjoner med klasser, legger vi dem inn i de tilsvarende modulene. En modul skal inneholde alle relaterte funksjoner og klasser. Nå ønsker vi å importere omformermodulen til appmodulen vår. For å gjøre dette, skriv import converters
på toppen uten utvidelsen ".py".
Vi kan få tilgang til medlemmene av en modul ved å bruke en punktoperator som ligner på metoder.
La oss konvertere 70 kg til pund:
Det er også en annen syntaks for å importere moduler. I stedet for å importere hele modulen, kan vi importere spesifikke funksjoner fra den modulen. Vi kan skrive from Converters import
og trykk "kontroll + mellomrom for å vise listen over tilgjengelige funksjoner. Med dette kan vi direkte kalle denne funksjonen.
Øvelse
Her er øvelsen din.
Dette er relatert til en øvelse fra foredraget der vi diskuterte "for løkker” hvor vi skrev et program for å finne ut det største tallet fra en liste
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Denne koden har for øyeblikket ingen organisasjon. Vi har ingen funksjoner eller moduler og programmet er skrevet i en enkelt fil. Det er greit for små programmer, men etter hvert som programmene vokser, må du organisere koden riktig i klasser og moduler. Derfor, som en del av denne øvelsen, vil jeg at du skal skrive en funksjon, kall den find_max
. Denne funksjonen skal ta en liste og returnere det største tallet i den listen. Etter det fortsett og legg denne funksjonen i en egen modul, trekk den ut herfra og legg den inn i en modul som heter utils
. Denne modulen skal inneholde en haug med verktøyfunksjoner. Importer utils
modul inn i gjeldende modul og ring find_max
funksjon. Til slutt, få resultatet og skriv det ut på terminalen.
Denne øvelsen er litt utfordrende, men lett gjennomførbar.
Oppløsning
Start med å definere en funksjon find_max
og legg til en parameter kalt tall. Inne i denne funksjonen skriver du algoritmen for å finne det største tallet i en liste.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
Lagre denne koden i filen "utils.py" som en modul.
Tilbake til hovedprogrammet vårt, bare importer modulen ved hjelp av en av de to syntaksene og kjør logikken.
En ting jeg må rette oppmerksomheten mot er det undergravde max
. Grunnen til det er max
er en innebygd funksjon i Python og vi redefinerer den. Så dette er en advarsel fra Python kompilator at vi ikke lenger kan bruke max som innebygd funksjon.
Innebygde moduler i Python
Python kommer med et standardbibliotek som inneholder flere moduler for vanlige oppgaver som å sende e-post, jobbe med dato og klokkeslett, generere tilfeldige verdier og passord og så videre. Det er så mange moduler allerede innebygd i Python, noe som betyr at det allerede er mye funksjonalitet som vi kan gjenbruke. Du kan finne disse modulene her..
Pakker
Pakker er i utgangspunktet en annen måte å organisere koden vår på toppen av modulene. Et ekte prosjekt kan inneholde hundrevis eller til og med tusenvis av moduler, og over tid vil katalogen vår bli oppblåst med så mange filer. Derfor er en bedre tilnærming å organisere relaterte moduler inne i en pakke som gjør pakken til en beholder for flere moduler.
En ny katalog legges til prosjektet og alle de relaterte modulene legges til den katalogen. Som et eksempel, tenk på et kjøpesenter. Det er forskjellige seksjoner for menn, kvinner og barneklær i et kjøpesenter som er som pakker. Hver seksjon har forskjellige områder for forskjellige typer produkter som sko, t-skjorter og jakker. Tenk på disse som moduler.
La oss se hvordan du lager og bruker pakker i Python.
Først legger du til en ny katalog fra prosjektpanelet. La oss kalle det "e-handel". Denne pakken vil inneholde alle modulene relatert til en e-handelsapplikasjon.
Det er fortsatt en tom katalog, og for å konvertere den til en pakke, må vi lage en spesiell fil i den. Legg til en ny python-fil i denne katalogen og navngi filen "__init__". Det er en spesiell konvensjon i Python, og når Python-tolken ser en fil med dette navnet i en katalog, behandler den denne katalogen som en pakke.
Vi har også en alternativ og kortfattet metode for å lage en pakke. Bare høyreklikk på prosjektpanelet og lag en Python-pakke fra listen. Gi det navnet "eCommerce", og det er det. Den vil automatisk opprette en katalog med en Python-fil kalt "__init__".
La oss nå lage en modul i pakken og gi den navnet "frakt". La oss i denne modulen lage en enkel funksjon for å beregne fraktkostnader.
def calc_shipping():
print("calc_shipping")
For å få tilgang til denne funksjonen i hovedmodulen vår, må vi få tilgang til den gjennom e-handelspakken. Nok en gang har vi to metoder for å importere denne modulen.
I den første metoden kan vi importere hele modulen og deretter kalle en funksjon uavhengig slik:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
Med denne tilnærmingen krever imidlertid å kalle en av funksjonene til denne modulen at den prefikses eCommerce.shipping.
Det er veldig detaljert. Så når vi jobber med pakker bruker vi ofte den andre tilnærmingen og bruker from
uttalelse.
from eCommerce.shipping import calc_shipping
calc_shipping()
Hvis du har flere funksjoner i en modul, kan du importere dem alle på en enkelt linje ved å bruke kommaer mellom dem. La oss si at det er en annen funksjon for å beregne skatt i fraktmodulen vår. Det vil bli importert slik:
from eCommerce.shipping import calc_shipping, calc_tax
Du kan også importere individuelle moduler og la funksjoner bli kalt på et senere tidspunkt i programmet. La oss importere modulfrakten og deretter bruke en punktoperatør til å kalle opp funksjonen calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Pakk opp!
Pakker og moduler er ekstremt viktige i Python. Spesielt når du vil jobbe med et rammeverk som Django som brukes til å bygge nettapplikasjoner med Python. Vi skal se nærmere på Django under et annet Python-kurs.
Dette var den siste konvensjonelle forelesningen i denne serien. Neste forelesning vil avvike fra vårt vanlige format og vi vil lære noen viktige brukstilfeller i Python. Det vil markere slutten på denne serien, og vi går videre til vår neste Python-serie. Følg med på det.
Legg igjen en kommentar