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
# 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, à éviterOù Python recherche les modules
Python recherche les modules dans sys.path, qui comprend :
- le répertoire du script en cours d'exécution,
- les répertoires définis dans
PYTHONPATH, - les bibliothèques installées (
site-packages).
import sys
sys.path # liste de répertoiresCréer un module
Créez le fichier mio_modulo.py :
# mio_modulo.py
PI = 3.14159
def area_cerchio(r):
return PI * r * rDepuis un autre fichier dans le même répertoire :
import mio_modulo
mio_modulo.area_cerchio(5) # 78.53975
from mio_modulo import area_cerchio, PIif __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.
# 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 :
mio_pkg/
__init__.py
utenti.py
pagamenti.py
from mio_pkg import utenti
from mio_pkg.utenti import crea_utenteÀ vous de jouer
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`.
Afficher l'indice
from math import sqrt
Solution disponible après 3 tentatives
Exercice de révision
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).
Afficher l'indice
import random as rnd
Solution disponible après 3 tentatives
Défi supplémentaire
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.
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