Of je nu een expert of beginner bent in het programmeren van Python, je moet bekend zijn met het modules importeren opdracht. Als nieuwkomer heb je misschien geen idee waar die modules vandaan komen.
Laten we dieper kijken om de oorsprong van die modules te begrijpen, en om ze te maken en te importeren voor hergebruik.
Wat is herbruikbaarheid van code en waarom zou u dit moeten doen?
Een van de beste praktijken bij het werken met de meeste server-side-talen is om uw code te modulariseren zodat deze herbruikbaar is. Omdat Python objectgeoriënteerd is, is het een van die talen die herbruikbaarheid van code mogelijk maakt.
Codemodularisatie omvat het schrijven van codes die verschillende instructies in blokken uitvoeren. Het wordt gebruikt om taken van elkaar te scheiden.
Wanneer u een code modulair maakt, geeft u deze een unieke naam. Die naam is zijn identiteit en betekent dat u de volgende keer dat u dat codeblok moet gebruiken, alleen de naam hoeft op te roepen en niet de hele code.
Deze praktijk maakt uw werk een stuk eenvoudiger en sneller tijdens een real-life project. Codemodularisatie verbetert ook de uitvoeringssnelheid en maakt testen eenvoudiger. In wezen maakt het uw code efficiënter en leesbaarder.
Hoewel ons voorbeeld hier niet is gebaseerd op objectgeoriënteerd programmeren (OOP), moeten we het kort bespreken voordat we verder gaan met het maken van een module.
De code die u van plan bent te hergebruiken, kan soms op zichzelf staan als afzonderlijke functies. Maar het kan ook in de vorm zijn van methoden in een klasse. Dat is wanneer het concept van OOP in het spel komt.
Objectgeoriënteerd programmeren in Python
OOP is de presentatie van codes als onafhankelijke objecten in de vorm van een klasse. Elk object heeft dan zijn attributen en methoden.
Die attributen zijn de kenmerken van de klasse, terwijl elke methode het gedrag van de attributen definieert.
In plaats van lange code te schrijven die minder efficiënt is een conventie in procedureel programmeren, wordt uw code efficiënter en specifieker in OOP. De reden is dat functies en gegevens worden opgeslagen in onafhankelijke klassen in OOP, in tegenstelling tot de scheiding van beide bij procedureel programmeren.
Elke klas die u maakt, krijgt vervolgens een identiteit. Dus als je een benoemde module uit een klasse nodig hebt, roep je deze aan met verwijzing naar die klasse.
Om een beter begrip te krijgen, bekijk onze beginnershandleiding om OOP te begrijpen.
De meeste moderne programmeertalen ondersteunen het "objectgeoriënteerde programmeren" (OOP) -paradigma. Maar wat is OOP precies en waarom is het zo handig?
Herbruikbare functies maken: een praktisch voorbeeld
Laten we verder kijken hoe we de functie kunnen hergebruiken voor een woordteller in een ander Python-bestand. Deze gids is alleen gericht op het maken van herbruikbare functies die zich niet in een object bevinden.
Open eerst een opdrachtprompt naar een willekeurige locatie op uw computer om een nieuw project te starten. In dit geval gebruiken we de projectnaam Aantal woorden. Typ hiervoor mkdir word_count.
Gebruik vervolgens uw favoriete virtuele omgevingstool om creëer een nieuwe virtuele omgeving. Als je er al een hebt gemaakt, activeer je deze gewoon. Zorg ervoor dat u zich nog steeds in de map van uw project bevindt.
Als een goede gewoonte, om de woordtellerfunctie te maken, proberen we eerst een ruwe formule te bedenken om deze te berekenen. Over het algemeen kunt u het aantal woorden vinden door er een toe te voegen aan het aantal spaties in een zin. Houd er rekening mee dat, hoewel u misschien geen woordtelling nodig heeft, het is hoe het idee zich verhoudt tot herbruikbaarheid van code die van belang is voor deze uitleg.
Open vervolgens een teksteditor voor uw projectlocatie en maak een nieuw Python-bestand. In dit geval krijgt het bestand de naam wordcounter.py; zorg ervoor dat u de juiste .py uitbreiding.
Hier is wat de woordteller bestand ziet eruit als:
# maak een variabele met de naam woord die enkele strings bevat
word = ['hoe maak je een woordteller in python']
# Loop vervolgens door de variabele om de woorden in de gemaakte variabele te tellen
NumberOfWords = [EachWord.count ('') + 1 voor EachWord in woord]
print (NumberOfWords)
uitvoer: [8]
Nu de onbewerkte code werkt, modulariseren we deze door een functie te maken die de code herbruikbaar maakt:
def CountWords (woorden):
als woorden niet Geen is:
NumberOfWords = [Eachword.count ('') + 1 voor elk woord in woorden]
retourneer NumberOfWords
mywords = ['een woordteller maken in python']
print (CountWords (mywords))
uitvoer: [6]
Dat is het; we hebben een woordtellermodule gemaakt. Laten we eens kijken hoe we het opnieuw kunnen gebruiken.
De aangemaakte module importeren
Onthoud dat u eerder een bestand met de naam wordcounter.py. Dat bestand bevat een functie genaamd CountWords. Als je die functie in een nieuw bestand nodig hebt en niet de hele code of functie wilt herschrijven, hoef je alleen die functie als module in je nieuwe bestand te importeren.
Merk op dat al uw Python-bestanden in dit geval in dezelfde map moeten staan. Om er zeker van te zijn dat dit het geval is, maakt u gewoon een nieuw Python-bestand aan in dezelfde map waar u het wordcounter.py het dossier.
Hier is hoe het nieuwe bestand eruit ziet:
van wordcounter importeer CountWords
words = ["hoe u uw code importeert en hergebruikt in Python"]
CountWords (woorden)
uitvoer: [9]
In het bovenstaande fragment, CountWords is de functie binnen de wordcounter.py het dossier. Om die functie opnieuw te gebruiken in een nieuw Python-bestand, importeren we het uit het bovenliggende bestand (wordcounter.py).
Absoluut uw gemaakte module importeren
Wat moet ik doen als het nieuwe bestand niet in dezelfde map staat als het modulebestand? In deze gevallen moet u naar de module verwijzen door een absolute import te gebruiken.
Om dit een beetje verder te begrijpen, gaan we ervan uit dat u een nieuw bestand heeft aangemaakt in de map van uw project. Maar het bestand waaruit u uw functie wilt importeren (dat is woordteller, in dit geval), bevindt zich in een andere map in de directory van uw project en noem die map subword_count.
Om uw module van te importeren woordteller (die nu in het subword_count folder) in een nieuw Python-bestand, je moet het absoluut aanroepen. Om te zien hoe dit werkt, maakt u een nieuw bestand in de map van uw project, geeft u het uw voorkeursnaam en importeert u uw module zoals geschreven in het onderstaande codefragment:
van subword_count.wordcounter importeer CountWords
words = ["hoe u uw code in Python importeert en hergebruikt voor bestanden in verschillende mappen."]
CountWords (woorden)
uitvoer: [14]
Tijdens een absolute import bladert Python door de bovenliggende map (subword_count in dit geval) en lokaliseert het bestand of de module die de functie van belang bevat (CountWords).
Om de betekenis van de absolute import hierboven op te splitsen, subword_count is een map in de map van uw project die de wordcounter.py het dossier. Dat bestand bevat dan de CountWords functie.
Waar werkt herbruikbaarheid van code?
Het modulariseren en hergebruiken van uw code is een best practice voor elk project dat u uitvoert. Als u OOP schrijft, wat u waarschijnlijk vaak zult doen, kunt u een klasse uit een module importeren of een functie uit een klasse aanroepen. Als de klas zich in een map bevindt, importeer deze dan absoluut in uw nieuwe bestand.
Dezelfde praktijk is van toepassing op functies die niet in een object zitten. Afhankelijk van de lay-out van uw project, kunt u ze expliciet of absoluut importeren, zoals we hierboven hebben gedaan.
Om optimaal te profiteren van de sterke punten van Python, wil je leren hoe Python werkt met objectgeoriënteerd programmeren (OOP).
- Programmeren
- Programmeren
- Python
- Object georiënteerd programmeren
Idowu is gepassioneerd door alles wat met slimme technologie en productiviteit te maken heeft. In zijn vrije tijd speelt hij met coderen en schakelt hij over naar het schaakbord als hij zich verveelt, maar hij houdt er ook van om af en toe de routine te doorbreken. Zijn passie om mensen de weg te wijzen in moderne technologie, motiveert hem om meer te schrijven.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Nog een stap…!
Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.