Modulelessen (4/4)
importeren en modules
Een module in Python is eenvoudigweg een .py bestand. Om de code van een module te gebruiken
vanuit een ander bestand, je importeert het.
Vormen van import
# 1) import del modulo intero
import math
math.sqrt(16) # 4.0
math.pi # 3.14159...
# 2) import di nomi specifici
from math import sqrt, pi
sqrt(16) # ora direttamente disponibile
pi
# 3) import con alias
import numpy as np # convenzione idiomatica
from datetime import datetime as dt
# 4) import "star" (sconsigliato)
from math import * # inquina il namespace, evitaWaar Python naar modules zoekt
Python zoekt naar modules in sys.path, waaronder:
- de directory van het actieve script,
- de mappen in
PYTHONPATH, - de geïnstalleerde bibliotheken (
site-packages).
import sys
sys.path # lista di directoryEen module maken
Maak mio_modulo.py aan:
# mio_modulo.py
PI = 3.14159
def area_cerchio(r):
return PI * r * rVanuit een ander bestand in dezelfde map:
import mio_modulo
mio_modulo.area_cerchio(5) # 78.53975
from mio_modulo import area_cerchio, PIif __name__ == "__main__":
Wanneer een script direct wordt uitgevoerd, wordt de speciale variabele __name__
is gelijk aan "__main__". Wanneer hetzelfde bestand geïmporteerd wordt als een module,
__name__ is gelijk aan de modulenaam.
# strumento.py
def fai_qualcosa():
print("lavoro!")
if __name__ == "__main__":
# eseguito solo se lanci `python strumento.py`
# NON viene eseguito se qualcuno importa questo file
fai_qualcosa()Dit is het standaardpatroon voor bestanden die zowel als herbruikbaar bestand kunnen dienen module en een uitvoerbaar script.
Pakketten: mappen met modules
Een map die een __init__.py bestand bevat (zelfs een leeg bestand) wordt een
importeerbaar pakket:
mio_pkg/
__init__.py
utenti.py
pagamenti.py
from mio_pkg import utenti
from mio_pkg.utenti import crea_utenteJouw beurt
Importeer de functie `sqrt` uit de module `math` (met `from math import sqrt`), bereken vervolgens de vierkantswortel van 144 en wijs deze toe aan `r`. Evalueer `r`.
Toon hint
van wiskunde import sqrt
Oplossing beschikbaar na 3 pogingen
Oefening beoordelen
Importeer de module `random` met alias `rnd` (`import willekeurig als rnd`), stel vervolgens de Seed in op 42 met rnd.seed(42), en evalueer rnd.randint(1, 100).
Toon hint
willekeurig importeren als rnd
Oplossing beschikbaar na 3 pogingen
Extra uitdaging
Import the `sin` and `cos` functions directly from the `math` module using `from ... import ...`. Calculate the sum of `sin(0)` and `cos(0)`, store it in `trig_sum`, and evaluate it.
Toon hint
sin(0) levert 0,0 op, cos(0) levert 1,0 op. De som bedraagt 1,0. Gebruik uit wiskunde import sin, cos.
Oplossing beschikbaar na 3 pogingen