Sisukord[Peida][Näita]
See loeng hõlmab Pythoni mooduleid ja pakette.
Need on viis koodi failidena korraldamiseks ja on väga olulised, kui kavatsete Pythoniga veebirakendusi luua
Moodulid
Pythoni moodul on põhimõtteliselt mingi Pythoni koodiga fail, mida kasutame koodi failideks korraldamiseks. Mõelge sellele nagu supermarketi jaotistele. Kui lähete supermarketisse, on seal erinevad jaotised puu-, juurviljade, puhastusvahendite jms jaoks. Te ei näe ühte jaotist kõigi toodetega.
See on sama kontseptsioon programmeerimises. Selle asemel, et kirjutada kogu kood koos kõigi funktsioonide ja klassidega faili main.py, jagame koodi mitmeks failiks. Iga faili nimetatakse mooduliks. Tänu sellele pole meie kood mitte ainult paremini organiseeritud ja struktureeritud, vaid meil on ka võimalus oma koodi uuesti kasutada. Vaatame seda näite kaudu.
Määratleme kaks funktsiooni kaalu teisendamiseks naeladest kilogrammidesse ja vastupidi.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
Nüüd saame võtta need kaks funktsiooni ja panna need eraldi moodulisse nimega "muundurid" ja seejärel saab selle importida mis tahes programmi, mis vajab neid muunduri funktsioone. Las ma näitan teile, kuidas seda teha.
Avame oma projektipaneeli ja paremklõpsame projektil ning lisame uue faili. Me hakkame seda faili nimetama "Converters.py".
Nüüd kopeerige kood vaikefailist ja kleepige see kausta Converters.py.
Sellega oleme oma põhimooduli puhastanud ja see ei ole erinevate funktsioonidega täis. Kui kirjutame klassidega rohkem funktsioone, paneme need vastavatesse moodulitesse. Moodul peaks sisaldama kõiki seotud funktsioone ja klasse. Nüüd tahame importida muundurite mooduli oma rakenduse moodulisse. Selleks kirjutage import converters
ülaosas ilma laiendita ".py".
Mooduli liikmetele pääseme ligi meetoditele sarnase punktioperaatori abil.
Teisendame 70 kg naeladeks:
Moodulite importimiseks on ka teine süntaks. Kogu mooduli importimise asemel saame importida konkreetseid funktsioone sellest moodulist. Saame kirjutada from Converters import
ja vajutage saadaolevate funktsioonide loendi kuvamiseks klahvikombinatsiooni "control + tühik". Selle abil saame seda funktsiooni otse kutsuda.
Teostama
Siin on teie harjutus.
See on seotud harjutusega loengust, kus arutasime "silmuste jaoks”, kus kirjutasime programmi, et teada saada loendist suurim arv
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Sellel koodil pole praegu organisatsiooni. Meil ei ole ühtegi funktsiooni ega moodulit ning programm on kirjutatud ühte faili. See on okei väikeste programmide jaoks, kuid programmide kasvades peate oma koodi õigesti klassidesse ja moodulitesse korraldama. Seetõttu tahan selle harjutuse osana kirjutada funktsiooni, kutsuda seda find_max
. See funktsioon peaks võtma loendi ja tagastama selle loendi suurima arvu. Seejärel pange see funktsioon eraldi moodulisse, eraldage see siit ja asetage moodulisse nimega utils
. See moodul peaks sisaldama hulga kasulikke funktsioone. Importige utils
moodul praegusesse moodulisse ja helista find_max
funktsiooni. Lõpuks hankige tulemus ja printige see terminali.
See harjutus on veidi keeruline, kuid kergesti teostatav.
Lahendus
Alustage funktsiooni määratlemisest find_max
ja lisage parameeter nimega numbrid. Selle funktsiooni sisse kirjutage loendi suurima arvu leidmise algoritm.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
Salvestage see kood faili "utils.py" moodulina.
Tagasi meie põhiprogrammi juurde, importige lihtsalt moodul kahe süntaksi järgi ja käivitage lihtsalt loogika.
Üks asi, millele pean teie tähelepanu juhtima, on õõnestatud max
. Selle põhjuseks on max
on Pythoni sisseehitatud funktsioon ja me määratleme selle uuesti. Nii et see on hoiatus Pythoni kompilaator et me ei saa enam kasutada max selle sisseehitatud funktsioonina.
Sisseehitatud moodulid Pythonis
Pythoniga on kaasas standardne teek, mis sisaldab mitmeid mooduleid tavapäraste toimingute jaoks, nagu e-kirjade saatmine, kuupäeva ja kellaaja määramine, juhuslike väärtuste ja paroolide genereerimine ja nii edasi. Pythonisse on juba sisse ehitatud nii palju mooduleid, mis tähendab, et meil on juba palju funktsioone, mida saame uuesti kasutada. Need moodulid leiate siin.
Paketid
Paketid on põhimõtteliselt veel üks viis meie koodi korraldamiseks moodulite peal. Tõeline projekt võib sisaldada sadu või isegi tuhandeid mooduleid ja aja jooksul täitub meie kataloog nii paljude failidega. Seetõttu on parem lähenemine korraldada seotud moodulid paketi sees, mis muudab pakendi mitme mooduli konteineriks.
Projektile lisatakse uus kataloog ja kõik sellega seotud moodulid lisatakse sellesse kataloogi. Näiteks mõelge kaubanduskeskusele. Kaubanduskeskuses on meeste, naiste ja lasterõivaste jaoks erinevad osad, mis on nagu pakendid. Igas jaotises on erinevad alad erinevate toodete jaoks, nagu kingad, t-särgid ja jakid. Mõelge neile kui moodulitele.
Vaatame, kuidas Pythonis pakette luua ja kasutada.
Esmalt lisage projektipaneelilt uus kataloog. Nimetagem seda "e-kaubanduseks". See pakett sisaldab kõiki e-kaubanduse rakendusega seotud mooduleid.
See on endiselt tühi kataloog ja selle paketiks teisendamiseks peame looma sellesse spetsiaalse faili. Lisage sellesse kataloogi uus pythoni fail ja pange sellele failile nimi "__init__". See on Pythonis eriline konventsioon ja kui Pythoni tõlk näeb kataloogis selle nimega faili, käsitleb ta seda kataloogi paketina.
Meil on ka alternatiivne ja lühike meetod paketi loomiseks. Paremklõpsake lihtsalt projekti paneelil ja looge loendist Pythoni pakett. Nimetage see "e-kaubandus" ja ongi kõik. See loob automaatselt Pythoni failiga kataloogi nimega "__init__".
Nüüd loome pakendisse mooduli ja paneme sellele nimeks "saatmine". Selles moodulis loome lihtsa funktsiooni saatekulude arvutamiseks.
def calc_shipping():
print("calc_shipping")
Sellele funktsioonile juurdepääsuks meie põhimoodulis peame sellele juurde pääsema e-kaubanduse paketi kaudu. Jällegi on meil selle mooduli importimiseks kaks meetodit.
Esimesel meetodil saame importida kogu mooduli ja seejärel kutsuda funktsiooni iseseisvalt järgmiselt:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
Kuid selle lähenemisviisi korral nõuab selle mooduli ühe funktsiooni kutsumine selle eesliite lisamist eCommerce.shipping.
See on väga paljusõnaline. Seega kasutame pakettidega töötades sageli teist lähenemist ja kasutame from
avalduses.
from eCommerce.shipping import calc_shipping
calc_shipping()
Kui teil on ühes moodulis mitu funktsiooni, saate need kõik importida ühele reale, kasutades nende vahel komasid. Oletame, et meie saatmismoodulis on maksude arvutamiseks veel üks funktsioon. See imporditakse järgmiselt:
from eCommerce.shipping import calc_shipping, calc_tax
Samuti saate importida üksikuid mooduleid ja jätta funktsioonid programmi hilisemas etapis kutsutavaks. Impordime mooduli tarnimise ja seejärel kasutame funktsiooni kutsumiseks punktioperaatorit calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Tõmba otsad kokku!
Paketid ja moodulid on Pythonis äärmiselt olulised. Eriti kui soovite töötada raamistikuga nagu Django, mida kasutatakse ehitamiseks veebirakendused Pythoniga. Djangoga tutvume veel ühe Pythoni kursuse ajal.
See oli selle sarja viimane tavaloeng. Järgmine loeng kaldub meie tavapärasest formaadist kõrvale ja saame selgeks mõned olulised Pythoni kasutusjuhtumid. See tähistab selle seeria lõppu ja liigume edasi oma järgmise Pythoni seeria juurde. Olge sellega kursis.
Jäta vastus