Importation et utilisation de modules
Importation et utilisation de modules#
import os
import sys
sys.path.append(os.path.join(os.getcwd(),"../python"))
Dans cette section, nous allons regarder plus en détails le principe et l’utilité des modules Python. Nous verrons ensuite quelques exemples de modules particulièrement intéressants.
Du fait du nombre d’utilisateurs de Python, de nombreuses fonctionnalités et opérations ont déjà été écrites par d’autres personnes.
Pythoon vient bien sur avec une grande quantité de fonctions utilisables grâce à des \textit{modules}.
Ces modules correspondent souvent à des fichiers écrits en Python qu’il suffit d’\textit{importer} afin d’accéder aux fonctions qu’ils contiennent.
Par exemple, le module math
de Python contient un grand nombre de fonctions mathématiques.
import math
a=2
sqrta = math.sqrt(a)
print("La racine carrée de",a,"est",sqrta)
La racine carrée de 2 est 1.4142135623730951
Ici, on commence par importer le module math
grâce au mot-clé import
.
Les fonctions contenues dans ce module come sqrt
ou sin
sont alors accessibles comme attributs du module math
(voir Section \ref{sec:objets}).
Il y a bien sur de nombreuses façons d’importer des modules plus explicites et plus économes en ressources.
Par exemple, un tutorial sur les méthodes d’importation de modules en Python est disponible ici.
Puisque importer des modules correspond à importer des fichiers en Python, il est possible de créer ses propres modules Python en créant un fichier “monmodule.py” (avec “monmodule” le nom du module désiré) dans le même dossier que le script dans lequel on veut l’importer.
Il suffit ensuite de l’importer grâce à la commande import mymodule
.
Par exemple, supposons que l’on ait un fichier Python “multiplier.py” qui contient une fonction carre
et cube
permettant de calculer des carrés et des cubes de valeurs.
Le contenu de ce fichier, situé dans le même dossier que le calepin Jupyter est donné ci-dessous.
# multiplier.py
def carre(a):
return a*a
def cube(a):
return a*a*a
On peut ensuite utiliser ces fonctions en important le module “multiplier”: les fonctions sont ensuite accessibles comme attributs des modules.
import multiplier
print("Le carré de 2 est",multiplier.carre(2))
print("Le cube de 10 est",multiplier.cube(10))
Le carré de 2 est 4
Le cube de 10 est 1000
Faisons ici plusieurs remarques sur les propriétés de l’importation. Tout d’abord, il est possible d’utiliser les modules pour autre chose que contenir des fonctions. Par exemple, on peut créer un module contenant des variables dans son scope principal et utiliser ces variables après importation.
# constants.py
pi = 3.14156
hbar = 1.054e-34
c = 299792458
Dans l’exemple ci-dessus, nous avons défini un module “constants” qui une fois importé permet d’accéder à des constantes de physique avec la commande constants.hbar
ou constants.c
.
En revanche il n’est pas possible d’importer des modules de manière hiérarchique: si un module “B” importe un module “A”, l’importation du module “B” ne va pas ainsi importer le module “A” et le rendre accessible: “A” ne restera accessible qu’au sein de “B”. Pour accéder à “A”, il faudra donc réimporter “A” dans le script Python dans lequel on en a besoin.
Il y a de nombreux modules Python qui existent, certains déjà installés, d’autres disponibles sur Internet. Il ne faut pas hésiter à aller voir si des modules qui pourraient vous être utiles existent.