Inleiding
De programmeertaal Python wordt geleverd met een verscheidenheid aan ingebouwde functies. Onder deze zijn verschillende veelvoorkomende functies, waaronder:
print()
die expressies afdruktabs()
die de absolute waarde van een getal retourneertint()
die een ander gegevenstype naar een geheel getal omzetlen()
die de lengte van een reeks of verzameling retourneert
Deze ingebouwde functies zijn echter beperkt, en we kunnen modules gebruiken om meer geavanceerde programma’s te maken.
Modules zijn Python .py
bestanden die bestaan uit Python-code. Elk Python-bestand kan worden aangeroepen als een module. Een Python-bestand genaamd hello.py
heeft de modulenaam hello
die kan worden geïmporteerd in andere Python-bestanden of gebruikt op de Python-opdrachtregelinterpreter. U kunt leren hoe u uw eigen modules maakt door Hoe modules schrijven in Python 3 te lezen.
Modules kunnen functies, klassen en variabelen definiëren die je kunt verwijzen in andere Python .py
bestanden of via de Python opdrachtregel interpreteren.
In Python worden modules benaderd door het gebruik van de import
instructie. Wanneer je dit doet, voer je de code van de module uit, waarbij de scopes van de definities worden behouden zodat je huidige bestand(en) hiervan gebruik kunnen maken.
Wanneer Python bijvoorbeeld een module genaamd hello
importeert, zal de interpreter eerst zoeken naar een ingebouwde module genaamd hello
. Als er geen ingebouwde module wordt gevonden, zal de Python-interpreter vervolgens zoeken naar een bestand met de naam hello.py
in een lijst met directories die hij ontvangt van de sys.path
variabele.
Deze tutorial zal je begeleiden bij het controleren op en installeren van modules, het importeren van modules, en het aliasen van modules.
Vereisten
Je moet Python 3 geïnstalleerd hebben en een programmeeromgeving op je computer of server hebben ingesteld. Als je geen programmeeromgeving hebt ingesteld, kun je de installatie- en instelgidsen raadplegen voor een lokale programmeeromgeving of voor een programmeeromgeving op je server die geschikt is voor je besturingssysteem (Ubuntu, CentOS, Debian, enzovoort).
Controleren en modules installeren
Er zijn een aantal modules die zijn ingebouwd in de Python Standaardbibliotheek, die veel modules bevat die toegang bieden tot systeemfunctionaliteit of gestandaardiseerde oplossingen bieden. De Python Standaardbibliotheek is onderdeel van elke Python-installatie.
Informatie: Om de voorbeeldcode in deze tutorial te volgen, open je een interactieve Python-shell op je lokale systeem door het python3
-commando uit te voeren. Vervolgens kun je de voorbeelden kopiëren, plakken of bewerken door ze toe te voegen na de >>>
-prompt.
Om te controleren of deze Python-modules klaar zijn om te worden gebruikt, ga je naar je lokale Python 3-programmeeromgeving of naar een op server gebaseerde programmeeromgeving en start je de Python-interpreter in je commandoregel als volgt:
Vanuit de interpreter kun je het import
-statement uitvoeren om te controleren of de opgegeven module gereed is om te worden aangeroepen, zoals:
Omdat math
een ingebouwde module is, zou je interpreter de taak zonder feedback moeten voltooien en terugkeren naar de prompt. Dit betekent dat je niets hoeft te doen om de math
-module te gaan gebruiken.
Laten we het import
-statement uitvoeren met een module die je mogelijk niet hebt geïnstalleerd, zoals de 2D-plotbibliotheek matplotlib
:
Als matplotlib
niet is geïnstalleerd, ontvang je een foutmelding zoals deze:
OutputImportError: No module named 'matplotlib'
Je kunt de Python-interpreter deactiveren met CTRL + D
en vervolgens matplotlib
installeren met pip
.
Vervolgens kunnen we pip
gebruiken om de matplotlib
-module te installeren:
Zodra het is geïnstalleerd, kun je matplotlib
importeren in de Python-interpreter met import matplotlib
, en het zal zonder fouten worden voltooid.
Modules importeren
Om gebruik te kunnen maken van de functies in een module, moet je de module importeren met een import
-statement.
Een import
-verklaring bestaat uit het import
-trefwoord samen met de naam van de module.
In een Python-bestand wordt dit bovenaan de code verklaard, onder eventuele shebang-regels of algemene opmerkingen.
Dus, in het Python-programmabestand my_rand_int.py
zouden we de random
-module importeren om willekeurige getallen te genereren op deze manier:
Wanneer we een module importeren, maken we deze beschikbaar voor ons in ons huidige programma als een aparte namespace. Dit betekent dat we naar de functie moeten verwijzen met puntnotatie, zoals [module].[functie]
.
In de praktijk, met het voorbeeld van de random
-module, kan dit eruit zien als een functie zoals:
random.randint()
die de functie aanroept om een willekeurig geheel getal terug te geven, ofrandom.randrange()
die de functie aanroept om een willekeurig element uit een gespecificeerd bereik terug te geven.
Laten we een for
-lus maken om te laten zien hoe we een functie van de random
-module binnen ons programma my_rand_int.py
zullen aanroepen:
Dit kleine programma importeert eerst de random
-module op de eerste regel, gaat dan over naar een for
-lus die zal werken met 10 elementen. Binnen de lus zal het programma een willekeurig geheel getal binnen het bereik van 1 tot en met 25 (inclusief) afdrukken. De gehele getallen 1
en 25
worden doorgegeven aan random.randint()
als zijn parameters.
Wanneer we het programma uitvoeren met python my_rand_int.py
, ontvangen we 10 willekeurige gehele getallen als output. Omdat deze willekeurig zijn, krijg je waarschijnlijk telkens verschillende getallen wanneer je het programma uitvoert, maar ze zullen iets genereren zoals dit:
Output6
9
1
14
3
22
10
1
15
9
De gehele getallen mogen nooit onder 1 of boven 25 gaan.
Als je functies van meer dan één module wilt gebruiken, kun je dat doen door meerdere import
-statements toe te voegen:
Je kunt programma’s zien die meerdere modules importeren met komma’s die ze scheiden – zoals import random, math
– maar dit is niet consistent met de PEP 8 Style Guide.
Om gebruik te maken van onze aanvullende module, kunnen we de constante pi
van math
aan ons programma toevoegen, en het aantal willekeurige getallen dat afgedrukt wordt verminderen:
Wanneer we nu ons programma uitvoeren, krijgen we output die er zo uitziet, met een benadering van pi als onze laatste regel van output:
Output18
10
7
13
10
3.141592653589793
De import
-statement stelt je in staat om één of meer modules in je Python-programma te importeren, zodat je gebruik kunt maken van de definities die in die modules zijn geconstrueerd.
Het gebruik van from
… import
Om te verwijzen naar items uit een module binnen de namespace van je programma, kun je de from
… import
-verklaring gebruiken. Wanneer je modules op deze manier importeert, kun je verwijzen naar de functies bij naam in plaats van via puntnotatie.
In deze constructie kun je specificeren welke definities rechtstreeks te verwijzen.
In andere programma’s zie je mogelijk dat de import
-verklaring verwijzingen naar alles wat binnen de module is gedefinieerd, accepteert door een asterisk (*
) te gebruiken als een wildcard, maar dit wordt afgeraden door PEP 8.
Laten we eerst bekijken hoe je één specifieke functie, randint()
, uit de random
-module importeert:
Hier roepen we eerst het from
-keyword aan, vervolgens random
voor de module. Vervolgens gebruiken we het import
-keyword en roepen we de specifieke functie aan die we willen gebruiken.
Wanneer we nu deze functie implementeren binnen ons programma, zullen we de functie niet meer in puntnotatie schrijven als random.randint()
, maar zullen we alleen randint()
schrijven:
Wanneer je het programma uitvoert, krijg je een output die vergelijkbaar is met wat we eerder hebben ontvangen.
Het gebruik van de from
… import
-constructie stelt ons in staat om de gedefinieerde elementen van een module binnen de namespace van ons programma te refereren, waardoor we puntnotatie kunnen vermijden.
Modules een alias geven
Het is mogelijk om de namen van modules en hun functies binnen Python te wijzigen door het gebruik van het as
trefwoord.
Je wilt mogelijk een naam wijzigen omdat je dezelfde naam al voor iets anders in je programma hebt gebruikt, een andere module die je hebt geïmporteerd ook die naam gebruikt, of je wilt een langere naam afkorten die je veel gebruikt.
De constructie van deze verklaring ziet er als volgt uit:
Laten we de naam van de math
module wijzigen in ons my_math.py
programma bestand. We zullen de module naam van math
veranderen in m
om het te verkorten. Ons aangepaste programma zal er als volgt uitzien:
Binnen het programma verwijzen we nu naar de pi
constante als m.pi
in plaats van math.pi
.
Voor sommige modules is het gebruikelijk om aliassen te gebruiken. De matplotlib.pyplot
module’s officiële documentatie roept op tot het gebruik van plt
als alias:
Dit stelt programmeurs in staat om het kortere woord plt
toe te voegen aan een van de beschikbare functies binnen de module, zoals bijvoorbeeld plt.show()
. Je kunt deze alias importverklaring zien in gebruik binnen onze “How to Plot Data in Python 3 Using matplotlib
tutorial.”
Conclusie
Wanneer we modules importeren, kunnen we functies aanroepen die niet ingebouwd zijn in Python. Sommige modules worden geïnstalleerd als onderdeel van Python, en sommige zullen we installeren via pip
.
Het gebruik van modules stelt ons in staat om onze programma’s robuuster en krachtiger te maken omdat we bestaande code gebruiken. We kunnen ook onze eigen modules maken voor onszelf en voor andere programmeurs om te gebruiken in toekomstige programma’s.
Source:
https://www.digitalocean.com/community/tutorials/how-to-import-modules-in-python-3