Direct naar de hoofdinhoud
Module 7 · Les 4 van 428/36 in de cursus~10 min
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

Python
# 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, evita

Waar Python naar modules zoekt

Python zoekt naar modules in sys.path, waaronder:

  1. de directory van het actieve script,
  2. de mappen in PYTHONPATH,
  3. de geïnstalleerde bibliotheken (site-packages).
Python
import sys
sys.path     # lista di directory

Een module maken

Maak mio_modulo.py aan:

Python
# mio_modulo.py
PI = 3.14159

def area_cerchio(r):
    return PI * r * r

Vanuit een ander bestand in dezelfde map:

Python
import mio_modulo
mio_modulo.area_cerchio(5)   # 78.53975

from mio_modulo import area_cerchio, PI

if __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.

Python
# 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:

Code
mio_pkg/
    __init__.py
    utenti.py
    pagamenti.py
Python
from mio_pkg import utenti
from mio_pkg.utenti import crea_utente

Jouw beurt

Oefening#python.m7.l4.e1
Pogingen: 0Laden…

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`.

Editor laden…
Toon hint

van wiskunde import sqrt

Oplossing beschikbaar na 3 pogingen

Oefening beoordelen

Oefening#python.m7.l4.e2
Pogingen: 0Laden…

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).

Editor laden…
Toon hint

willekeurig importeren als rnd

Oplossing beschikbaar na 3 pogingen

Extra uitdaging

Oefening#python.m7.l4.e3
Pogingen: 0Laden…

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.

Editor laden…
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