oujood.com

Les modules en Python

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.

chercher |

Introduction aux modules Python

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 :

  Copier le code

# tarification.py

def obtenir_prix_net(prix, taux_taxe, remise=0) :
return prix * (1 + taux_taxe) * ( 1 - remise)


def obtenir_taxe(prix, taux_taxe=0) :
return prix * taux_taxe
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 :

  Copier le code

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

  Copier le code

# 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() :

  Copier le code

# 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() :

  Copier le code

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.

Voir aussi nos tutoriel :

Balise li

Définit un élément de liste

height

Définit la hauteur d'un élément

fonction levenshtein

Calcule la distance Levenshtein entre deux chaînes