Dans ce tutoriel, vous découvrirez les modules Python, comment importer des objets depuis un module et comment développer vos modules. Qu'est-ce qu'un module ? Un module est considéré comme une bibliothèque de code. C'est un fichier contenant un ensemble de fonctions que vous souhaitez inclure dans votre application.
Un module est un élément de logiciel qui possède une fonctionnalité spécifique. Un module Python est un fichier qui contient du code Python.
Par exemple, lorsque vous créez une application de panier d'achat, vous pouvez avoir un module pour calculer les prix et un autre pour gérer les articles dans le panier. Chaque module est un fichier de code source Python distinct.
Un module a un nom spécifié par le nom de fichier sans l'extension .py. Par exemple, si vous avez un fichier appelé tarification.py, le nom du module est tarification.
Création de modules Python
Tout d'abord, créez un nouveau fichier appelé tarification.py et ajoutez le code suivant :
Le module de tarification comporte deux fonctions qui calculent le prix net et la taxe à partir du prix de vente, du taux de taxe et de la remise.
Importer les objets d'un module
Pour utiliser des objets définis dans un module à partir d'un autre fichier, vous pouvez utiliser l'instruction import.
L'instruction import a plusieurs formes que nous allons aborder dans les sections suivantes.
1) import nom_du_module
Pour utiliser les objets définis dans un module, vous devez importer le module à l'aide de l'instruction import comme le montre le code suivant :
import nom_module
Par exemple, pour utiliser le module de tarification dans le fichier main.py, vous utilisez l'instruction suivante :
import tarification
Lorsque vous importez un module, Python exécute tout le code du fichier correspondant. Dans cet exemple, Python exécute le code du fichier tarification.py. En outre, Python ajoute le nom du module au module actuel.
Ce nom de module vous permet d'accéder aux fonctions, variables, etc. du module importé dans le module actuel.
Par exemple, vous pouvez appeler une fonction définie dans le module importé en utilisant la syntaxe suivante :
nom_module.nom_fonction()
L'exemple suivant montre comment utiliser la fonction get_net_price() définie dans le module de tarification dans le fichier main.py :
# main.py
import tarification
prix_net = tarification.obtenir_prix_net(prix=100,taux_taxe=0.01)
print(f"Le prix net est : {prix_net}")
2) import nom_du_module comme nouveau_nom
Si vous ne voulez pas utiliser la tarification comme identifiant dans le fichier main.py, vous pouvez renommer le nom du module en un autre comme suit :
import tarification as pv
Puis, vous pouvez utiliser pv comme identifiant dans le fichier main.py :
prix_net = pv.obtenir_prix_net(100,0.01)
3) à partir de nom_du_module import nom
.
Si vous souhaitez référencer des objets dans un module sans préfixer le nom du module, vous pouvez les importer explicitement en utilisant la syntaxe suivante :
from nom_du_module import fn1, fn2
Maintenant, vous pouvez utiliser les fonctions importées sans spécifier le nom du module comme ceci :
fn1()
fn2()
Dans l'exemple suivant, nous importons la fonction get_net_price() du module de tarification :
# main.py
from tarification import obtenir_prix_net
Et utilise la fonction obtenir_prix_net() du module de tarification :
# main.py
from tarification import obtenir_prix_net
prix_net = obtenir_prix_net(100,0.01)
print(f"Le prix net est : {prix_net}")
4) from nom_du_module import * : importer tous les objets d'un module
Pour importer tous les objets d'un module, vous pouvez utiliser la syntaxe suivante :
from nom_du_module import *
Cette instruction import importera dans le programme tous les identifiants publics, y compris les variables, les constantes, les fonctions, les classes, etc.
Cependant, ce n'est pas une bonne pratique car si les modules importés ont le même objet, l'objet du second module remplacera le premier. Le programme risque de ne pas fonctionner comme vous le souhaitez.
Prenons l'exemple suivant.
Tout d'abord, créez un nouveau fichier appelé produit.py et définissez la fonction obtenir_taxe() :
# produit.py
def obtenir_taxe(prix) :
return prix * 0.1
Les modules produit et tarification disposent tous deux de la fonction obtenir_taxe(). Cependant, la fonction obtenir_taxe() du module produit n'a qu'un seul paramètre alors que la fonction obtenir_taxe() du module tarification a deux paramètres.
Deuxièmement, importez tous les objets des modules de tarification et de produit et utilisez la fonction obtenir_taxe() :
from tarification import *
from produit import *
taxe = obtenir_taxe(100)
print(taxe)
Puisque la fonction obtenir_taxe() du module produit a priorité sur la fonction obtenir_taxe() du module de tarification, vous obtiendrez la taxe avec une valeur de 10.