Ükskõik, kas olete Pythoni programmeerimise asjatundja või algaja, peate olema sellega tuttav impordi mooduleid käsk. Uue tulijana ei pruugi teil aga aimugi olla, kust need moodulid pärinevad.
Vaatame põhjalikumalt, et mõista nende moodulite päritolu koos nende loomise ja importimisega korduskasutuseks.
Mis on koodi korduvkasutus ja miks peaksite seda tegema?
Üks parimatest tavadest enamiku serveripoolsete keeltega töötamisel on koodi moduleerimine nii, et see oleks korduvkasutatav. Kuna Python on objektorienteeritud, on see üks nendest keeltest, mis muudab koodi korduvkasutamise võimalikuks.
Koodide moduleerimine hõlmab koodide kirjutamist, mis täidavad erinevaid juhiseid plokkidena. Seda kasutatakse ülesannete üksteisest eraldamiseks.
Kui moduleerite koodi, annate sellele kordumatu nime. See nimi on tema identiteet ja see tähendab, et järgmine kord, kui peate seda koodiplokki kasutama, peate välja kutsuma ainult selle nime, mitte kogu koodi.
See tava muudab teie töö tegeliku projekti käigus palju lihtsamaks ja kiiremaks. Koodi modulariseerimine parandab ka täitmise kiirust ja hõlbustab testimist. Sisuliselt muudab see teie koodi tõhusamaks ja loetavamaks.
Ehkki meie siinne näide ei põhine objektorienteeritud programmeerimisel (OOP), peame seda enne mooduli loomise juurde asumist lühidalt arutama.
Kood, mida kavatsete mõnikord uuesti kasutada, võib olla eraldi üksikute funktsioonidena. Kuid see võib olla ka kujul meetodid sees klass. Siis tuleb mängu OOP kontseptsioon.
Objektorienteeritud programmeerimine Pythonis
OOP on koodide esitamine iseseisvate objektidena klassi kujul. Igal objektil on siis oma atribuudid ja meetodid.
Need atribuudid on klassi tunnused, samas kui iga meetod määratleb atribuutide käitumise.
Vähem efektiivse pika koodi kirjutamise asemel muutuvad protseduurilise programmeerimise kokkulepped teie koodis OOP-s tõhusamaks ja konkreetsemaks. Põhjuseks on see, et funktsioonid ja andmed salvestatakse OOP-s sõltumatutesse klassidesse, erinevalt mõlema eraldamisest protseduuriprogrammides.
Seejärel loob iga teie loodud klass identiteedi. Nii et kui vajate klassist nimega moodulit, kutsute seda selle klassi viitega.
Parema mõistmise saamiseks vaadake meie algajate juhend OOP mõistmiseks.
Enamik kaasaegseid programmeerimiskeeli toetab "objektorienteeritud programmeerimise" (OOP) paradigmat. Aga mis on OOP täpsemalt ja miks see nii kasulik on?
Korduvkasutatavate funktsioonide tegemine: praktiline näide
Edasi liikudes vaatame, kuidas saaksime teises Pythoni failis sõnalugeja funktsiooni taaskasutada. See juhend keskendub ainult korduvkasutatavate funktsioonide loomisele, mis pole objekti sees.
Kõigepealt avage uue projekti alustamiseks käsuviip oma arvutisse. Sel juhul kasutame projekti nime sõnade arv. Selleks tippige mkdir sõna_arv.
Järgmisena kasutage eelistatud virtuaalse keskkonna tööriista luua uus virtuaalne keskkond. Kui olete selle juba loonud, aktiveerige see lihtsalt. Veenduge, et olete endiselt oma projekti kataloogis.
Hea tava kohaselt proovime sõna loenduri funktsiooni loomiseks kõigepealt välja arvutada toore valemi. Üldiselt leiate sõnade arvu, lisades ühe lause tühikute arvule. Pange tähele, et kuigi teil pole võib-olla vaja sõnade arvu, on selle selgituse jaoks oluline see, kuidas idee on seotud koodi korduvkasutatavusega.
Järgmisena avage tekstiredaktor oma projekti asukohta ja looge uus Pythoni fail. Sel juhul nimetatakse faili nimeks wordcounter.py; veenduge, et kasutate õiget .py pikendamine.
Siin on, mida sõnalugeja fail näeb välja:
# loo muutuja nimega sõna, mis hoiab mõnda stringi
sõna = ['kuidas teha Pythonis sõnaloendurit']
# Järgmisena looge muutuja läbi loodud muutuja sõnade lugemiseks
NumberOfWords = [IgaSõna.arv ('') + 1 iga sõna kohta sõnas]
print (NumberOfWords)
väljund: [8]
Nüüd, kui töötlemata kood töötab, moduleerime selle siis, luues funktsiooni, mis muudab koodi korduvkasutatavaks:
def CountWords (sõnad):
kui sõnad pole Puuduvad:
NumberOfWords = [Everyword.count ('') + 1 iga sõna jaoks sõnades]
tagastage NumberOfWords
mywords = ['sõnalugeja loomine pythonis']
print (CountWords (mywords))
väljund: [6]
See on kõik; oleme loonud sõnalugeja mooduli. Vaatame, kuidas seda uuesti kasutada.
Loodud mooduli importimine
Pidage meeles, et lõite varem faili nimega wordcounter.py. Selles failis on funktsioon nimega CountWords. Kui vajate seda funktsiooni uues failis ja te ei soovi kogu koodi või funktsiooni ümber kirjutada, on vaja ainult importida see funktsioon uude faili moodulina.
Pange tähele, et sel juhul peavad kõik teie Pythoni failid olema samas kataloogis. Selleks, et see nii oleks, looge lihtsalt uus Pythoni fail samasse kataloogi, kus teil on wordcounter.py faili.
Uus fail näeb välja selline:
alates wordcounter impordi CountWords
sõnad = ["kuidas oma koodi Pythonis importida ja uuesti kasutada"]
CountWords (sõnad)
väljund: [9]
Ülaltoodud katkendis CountWords on funktsioon wordcounter.py faili. Selle funktsiooni taaskasutamiseks uues Pythoni failis impordime selle selle vanemfailist (wordcounter.py).
Teie loodud mooduli importimine absoluutselt
Mis siis, kui uus fail pole moodulifailiga samas kataloogis? Sellistel juhtudel peate moodulile viitama absoluutse impordi abil.
Et sellest veidi edasi aru saada, oletame, et olete oma projekti kataloogis loonud uue faili. Kuid fail, millest kavatsete oma funktsiooni importida (mis on sõnalugeja, antud juhul) asub teises kataloogis, mis asub teie projekti kataloogilehel selles kaustas allsõna_arv.
Mooduli importimiseks rakendusest sõnalugeja (mis on nüüd allsõna_arv kaust) uude Pythoni faili, peate selle absoluutselt kutsuma. Selle toimimise nägemiseks looge oma projekti kataloogi uus fail, andke sellele eelistatud nimi ja importige moodul, nagu on kirjutatud allolevas koodijupis:
alates subword_count.wordcounter importige CountWords
words = ["kuidas Pythonis koodi importida ja taaskasutada erinevates kaustades olevate failide jaoks."]
CountWords (sõnad)
väljund: [14]
Absoluutse impordi ajal sirvib Python vanemkausta (allsõna_arv (sel juhul) ja leiab faili või mooduli, mis sisaldab huvipakkuvat funktsiooni (CountWords).
Eespool toodud absoluutse impordi tähenduse jaotamiseks allsõna_arv on kaust teie projekti kataloogis, mis hoiab wordcounter.py faili. Seejärel sisaldab see fail CountWords funktsioon.
Kus koodide taaskasutatavus töötab?
Koodi moduleerimine ja taaskasutamine on kõigi teie käimasolevate projektide parim tava. Kui kirjutate OOP-i, mida teete tõenäoliselt sageli, saate klassi importida moodulist või kutsuda klassi funktsiooni. Kui klass asub kaustas, importige see absoluutselt oma uude faili.
Sama praktika kehtib funktsioonide kohta, mis pole objektis. Sõltuvalt teie projekti paigutusest saate need otse või absoluutselt importida, nagu me oleme seda eespool teinud.
Pythoni tugevuste täielikuks ärakasutamiseks peaksite õppima, kuidas Python töötab objektorienteeritud programmeerimisega (OOP).
- Programmeerimine
- Programmeerimine
- Python
- Objektorienteeritud programmeerimine
Idowu on kirglik kõigest nutikast tehnoloogiast ja tootlikkusest. Vabal ajal mängib ta kodeerimisega ringi ja lülitub igavuse korral malelauale, kuid armastab ka rutiinist lahti murda. Tema kirg näidata inimestele moodsate tehnikate kohta motiveerib teda rohkem kirjutama.
Telli meie uudiskiri
Liituge meie uudiskirjaga, kus leiate tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!
Veel üks samm !!!
Palun kinnitage oma e-posti aadress meilis, mille me just saatsime.