Passer au contenu principal
eLearner.app
Module 7 · Leçon 4 sur 428/36 dans le cours~10 min
Leçons du module (4/4)

import et modules

Un module en Python est simplement un fichier .py. Pour utiliser le code d'un module depuis un autre fichier, vous l'importez (import).

Formes d' import

Python
# 1) import du module complet
import math
math.sqrt(16)        # 4.0
math.pi              # 3.14159...

# 2) import de noms spécifiques
from math import sqrt, pi
sqrt(16)             # désormais directement disponible
pi

# 3) import avec alias
import numpy as np      # convenzione idiomatica
from datetime import datetime as dt

# 4) import "star" ou étoile (déconseillé)
from math import *      # pollue le namespace, à éviter

Où Python recherche les modules

Python recherche les modules dans sys.path, qui comprend :

  1. le répertoire du script en cours d'exécution,
  2. les répertoires définis dans PYTHONPATH,
  3. les bibliothèques installées (site-packages).
Python
import sys
sys.path     # liste de répertoires

Créer un module

Créez le fichier mio_modulo.py :

Python
# mio_modulo.py
PI = 3.14159

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

Depuis un autre fichier dans le même répertoire :

Python
import mio_modulo
mio_modulo.area_cerchio(5)   # 78.53975

from mio_modulo import area_cerchio, PI

if __name__ == "__main__":

Lorsqu'un script est exécuté directement, sa variable spéciale __name__ vaut "__main__". Lorsque le même fichier est importé comme module, __name__ est égal au nom du module.

Python
# strumento.py

def fai_qualcosa():
    print("lavoro!")

if __name__ == "__main__":
    # exécuté uniquement si vous lancez `python strumento.py`
    # n'est PAS exécuté si quelqu'un importe ce fichier
    fai_qualcosa()

C'est le modèle standard pour les fichiers qui peuvent servir à la fois de module réutilisable et de script exécutable.

Packages : dossiers de modules

Un répertoire contenant un fichier __init__.py (même vide) devient un package (paquet) importable :

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

À vous de jouer

Exercice#python.m7.l4.e1
Tentatives : 0Chargement…

Importez la fonction `sqrt` du module `math` (avec `from math import sqrt`), puis calculez la racine carrée de 144 et assignez le résultat à `r`. Évaluez `r`.

Chargement de l'éditeur…
Afficher l'indice

from math import sqrt

Solution disponible après 3 tentatives

Exercice de révision

Exercice#python.m7.l4.e2
Tentatives : 0Chargement…

Importez le module `random` avec l'alias `rnd` (`import random as rnd`), puis définissez la graine sur 42 avec rnd.seed(42), et évaluez rnd.randint(1, 100).

Chargement de l'éditeur…
Afficher l'indice

import random as rnd

Solution disponible après 3 tentatives

Défi supplémentaire

Exercice#python.m7.l4.e3
Tentatives : 0Chargement…

Importez les fonctions `sin` et `cos` directement du module `math` en utilisant `from ... import ...`. Calculez la somme de `sin(0)` et `cos(0)`, stockez-la dans `trig_sum` et évaluez-la.

Chargement de l'éditeur…
Afficher l'indice

sin(0) renvoie 0.0, cos(0) renvoie 1.0. La somme vaut 1.0. Utilisez from math import sin, cos.

Solution disponible après 3 tentatives