Accéder au contenu principal

Travailler avec des modules en Python

Les modules vous permettent de répartir des parties de votre programme dans différents fichiers afin d'en faciliter la maintenance et d'en améliorer les performances.
Actualisé 4 oct. 2024  · 8 min de lecture

En tant que débutant, vous commencez à travailler avec Python sur l'interpréteur. Plus tard, lorsque vous devrez écrire des programmes plus longs, vous commencerez à écrire des scripts. Au fur et à mesure que votre programme prend de l'ampleur, vous souhaiterez peut-être le diviser en plusieurs fichiers pour faciliter la maintenance et la réutilisation du code. La solution à ce problème réside dans les modules. Vous pouvez définir vos fonctions les plus utilisées dans un module et l'importer, au lieu de copier leurs définitions dans différents programmes. Un module peut être importé par un autre programme pour utiliser ses fonctionnalités. C'est ainsi que vous pouvez également utiliser la bibliothèque standard de Python.

En termes simples, un module est un fichier composé de code Python. Il peut définir des fonctions, des classes et des variables et peut également inclure du code exécutable. Tout fichier Python peut être référencé en tant que module. Un fichier contenant du code Python, par exemple : test.py est appelé un module, et son nom serait test.

Il existe plusieurs méthodes pour écrire des modules, mais la plus simple consiste à créer un fichier avec une extension .py, qui contient des fonctions et des variables.

Avant de commencer à écrire vos propres modules, je vous recommande de jeter un coup d'œil à notre cours Intro to Python for Data Science, qui couvre les bases du langage de programmation Python.

Apprenez Python à partir de zéro

Maîtrisez Python pour la science des données et acquérez des compétences recherchées.
Commencez À Apprendre Gratuitement

Le module d'importation en Python

Pour utiliser les fonctionnalités présentes dans un module, vous devez les importer dans votre programme actuel. Vous devez utiliser le mot-clé import avec le nom du module souhaité. Lorsque l'interpréteur rencontre une déclaration import, il importe le module dans votre programme actuel. Vous pouvez utiliser les fonctions à l'intérieur d'un module en utilisant l'opérateur point (.) avec le nom du module. Tout d'abord, voyons comment utiliser les modules de la bibliothèque standard. Dans l'exemple ci-dessous, le module math est importé dans le programme afin que vous puissiez utiliser la fonction sqrt().

import math             #You need to put this command,`import` keyword along with the name of the module you want to import
num = 4
print(math.sqrt(num))   #Use dot operator to access sqrt() inside module "math"

Pour des raisons d'efficacité, chaque module n'est importé qu'une seule fois par session de l'interprète. Par conséquent, si vous modifiez vos modules, vous devez redémarrer l'interpréteur. Si vous souhaitez tester un seul module de manière interactive, utilisez reload(), par exemple : reload(module_name).

Écrire des modules en Python

Maintenant que vous avez appris à importer un module dans votre programme, il est temps d'écrire le vôtre et de l'utiliser dans un autre programme. L'écriture d'un module est identique à celle de n'importe quel autre fichier Python. Commençons par écrire une fonction pour additionner/soustraire deux nombres dans un fichier calculation.py.

def add(x,y):
    return (x+y)
def sub(x,y):
    return (x-y)

Si vous essayez d'exécuter ce script sur la ligne de commande, rien ne se passera car vous n'avez pas demandé au programme de faire quoi que ce soit. Créez un autre script Python dans le même répertoire sous le nom module_test.py et écrivez-y le code suivant.

import calculation            #Importing calculation module
print(calculation.add(1,2))   #Calling function defined in add module.

Si vous exécutez module_test.py, vous verrez "3" en sortie. Lorsque l'interpréteur a rencontré l'instruction import, il a importé le module calculation dans votre code et, en utilisant l'opérateur point, vous avez pu accéder à la fonction add().

Autres façons d'importer des modules en Python

Il existe d'autres façons d'importer des modules :

  • from .. import déclaration
  • from .. import * déclaration
  • renommer le module importé

from ... import statement

L'instruction from..import vous permet d'importer des fonctions/variables spécifiques d'un module au lieu de tout importer. Dans l'exemple précédent, lorsque vous avez importé calculation dans module_test.py, les fonctions add() et sub() ont été importées. Et si vous n'aviez besoin que de la fonction add() dans votre code ? Voici un exemple illustrant l'utilisation de from..import.

from calculation import add
print(add(1,2))

Dans l'exemple ci-dessus, seule la fonction add() est importée et utilisée. Remarquez l'utilisation de add()? Vous pouvez maintenant y accéder directement sans utiliser le nom du module. Vous pouvez également importer plusieurs attributs en les séparant par une virgule dans la déclaration d'importation. Regardez l'exemple suivant :

from calculation import add,sub

from ... import * statement

Vous pouvez importer tous les attributs d'un module à l'aide de cette déclaration. Cela rendra tous les attributs du module importé visibles dans votre code.

Voici un exemple illustrant l'utilisation de from .. import *:

from calculation import *
print(add(1,2))
print(sub(3,2))

Notez que dans le monde professionnel, vous devriez éviter d'utiliser from..import et from..import*, car cela rend votre code moins lisible.

Renommer le module importé en Python

Vous pouvez renommer le module que vous importez, ce qui peut être utile lorsque vous souhaitez donner un nom plus significatif au module ou lorsque le nom du module est trop long pour être utilisé de manière répétée. Vous pouvez utiliser le mot-clé as pour le renommer. L'exemple suivant explique comment l'utiliser dans votre programme.

import calculation as cal
print(cal.add(1,2))

Vous avez gagné du temps en renommant calculation en cal.

Notez que vous ne pouvez plus utiliser calculation.add(1,2), car calculation n'est plus reconnu dans votre programme.

Chemin de recherche de modules en Python

Il se peut que vos modules soient utilisés dans différents programmes ou projets et que leur emplacement physique dans le répertoire soit différent. Si vous souhaitez utiliser un module résidant dans un autre répertoire, Python vous propose quelques options.

Lorsque vous importez un module nommé calculation, l'interpréteur recherche d'abord un module intégré portant ce nom. S'il ne le trouve pas, il recherche alors un fichier nommé calculation.py dans une liste de répertoires donnée par la variable sys.path. sys.path contient ces emplacements :

  • Le répertoire contenant le script d'entrée (ou le répertoire courant)

  • PYTHONPATH (une liste de noms de répertoires avec la même syntaxe que la variable shell PATH)

  • La valeur par défaut dépend de l'installation

Supposons que module_test.py se trouve dans le répertoire /home/datacamp/ et que vous avez déplacé calculation.py vers /home/test/. Vous pouvez modifier sys.path pour inclure /home/test/ dans la liste des chemins dans lesquels l'interpréteur Python recherchera le module. Pour cela, vous devez modifier module_test.py de la manière suivante :

import sys
sys.path.append('/home/test/')

import calculation
print(calculation.add(1,2))

Fichiers compilés par octets en Python

L'importation d'un module augmente le temps d'exécution des programmes, c'est pourquoi Python dispose de quelques astuces pour l'accélérer. L'une des méthodes consiste à créer des fichiers compilés par octets avec l'extension .pyc.

En interne, Python convertit le code source en une forme intermédiaire appelée bytecode. Il le traduit ensuite dans la langue maternelle de votre ordinateur et l'exécute. Ce fichier .pyc est utile lorsque vous importez le module la prochaine fois à partir d'un autre programme - cela sera beaucoup plus rapide puisqu'une partie du traitement nécessaire à l'importation d'un module a déjà été effectuée. De plus, ces fichiers compilés par octets sont indépendants de la plate-forme.

Notez que ces fichiers .pyc sont généralement créés dans le même répertoire que les fichiers .py correspondants. Si Python n'a pas le droit d'écrire dans les fichiers de ce répertoire, les fichiers .pyc ne seront pas créés.

La fonction Python dir()

La fonction dir() est utilisée pour trouver tous les noms définis dans un module. Elle renvoie une liste triée de chaînes de caractères contenant les noms définis dans un module.

import calculation
print(test.add(1,2))
print(dir(calculation))

Sortie :

['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'add', 'sub']

Dans la sortie, vous pouvez voir les noms des fonctions que vous avez définies dans le module, add & sub. L'attribut __name__ contient le nom du module. Tous les attributs commençant par un trait de soulignement sont des attributs Python par défaut associés à un module.

Conclusion

La création d'un module est nécessaire pour une meilleure gestion du code et sa réutilisation. Python vous fournit des modules intégrés, qui peuvent être importés en utilisant le mot-clé import. Python vous permet également de créer vos propres modules et de les utiliser dans vos programmes. Il vous donne des fichiers compilés par octets pour surmonter le coût de l'utilisation des modules, ce qui rend l'exécution plus rapide. Vous pouvez utiliser dir() pour connaître les attributs définis dans le module utilisé dans un programme. Cette fonction peut être utilisée aussi bien pour les modules prédéfinis que pour les modules définis par l'utilisateur.

Si vous souhaitez en savoir plus sur Python, vous pouvez consulter notre cours Python intermédiaire pour la science des données.

Sujets

Cours Python

Certification disponible

cours

Introduction à Python

4 hr
5.7M
Maîtrisez les bases de l'analyse de données avec Python en seulement quatre heures. Ce cours en ligne présente l'interface Python et explore les paquets les plus courants.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow
Apparenté

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

See MoreSee More