Introduction
Python est l'un des langages de programmation les plus couramment utilisés à travers le monde. Modules sont une partie essentielle du code Python. Un module est simplement un .py fichier dans le contexte de Python 3. Cela signifie que vous pouvez faire référence à n'importe quel fichier Python en tant que module.
Il vous est possible d'obtenir ces modules via la bibliothèque préformée. Vous pouvez jeter un œil à la bibliothèque standard de Python pour en savoir plus. Ceux-ci sont installés sur votre système lorsque vous installez Python. Dans d'autres situations, vous pouvez installer ces modules à l'aide du gestionnaire de paquets Python pip. Mais que se passe-t-il si vous souhaitez créer un module personnalisé ? Si tel est le cas, vous serez ravi d'apprendre que vous pouvez créer vos propres modules en Python.
Dans ce guide détaillé, nous allons décrire les étapes à suivre pour écrire et importer des modules dans Python 3.
Prérequis
Avant de commencer, vous devez vous assurer que Python 3 est installé et qu'un environnement de programmation est configuré. Vous pouvez suivre notre tutoriel sur l'installation de Python 3 et la configuration d'un environnement de programmation local sur Ubuntu 16.04 pour terminer l'installation au cas où vous ne l'auriez pas encore fait.
Comment écrire un module ?
Commençons par l'écriture d'un module. Vous écrivez un module tout comme vous rédigeriez n'importe quel autre fichier Python. Un module typique comprend les définitions des fonctions, des classes et des variables. Par la suite, vous pouvez utiliser le module pour l'appliquer à d'autres programmes Python.
Pour vous aider à comprendre, prenons un exemple. Disons que nous voulons créer un fichier nommé hello.py. Nous l'importerons également plus tard dans un autre fichier. La première étape du processus consiste à créer une fonction. Cette fonction servira à afficher Hello, World! comme ceci :
|
1 2 3 |
# Définir une fonction def world(): print("Hello, World!") |
À ce stade, l'exécution de la commande python hello.py ne vous donnera aucun résultat. C'est parce que nous n'avons pas encore donné d'instructions au programme. Pour le faire fonctionner, nous devons importer le module.
Comment importer un module ?
Afin d'importer votre module pour en faire une fonction, vous devez créer un deuxième fichier dans le même répertoire. Nous appellerons ce nouveau fichier main_program.py. La raison pour laquelle les deux fichiers doivent se trouver dans le même répertoire est que nous devons indiquer au programme où trouver le module. Cela s'applique à tout nouveau module personnalisé qui n'est pas intégré :
|
1 2 3 4 5 |
# Importer le module hello import hello # Appeler la fonction hello.world() |
Nous avons utilisé la notation par point pour le nom du module afin d'appeler la fonction. Une autre façon de procéder consiste à utiliser la méthode from...import. Ici, nous appellerons la fonction comme world() en important le module comme from hello import world. Enfin, vous pouvez exécuter la commande :
|
1 |
python main_program.py |
La commande vous affichera la sortie suivante :
|
1 2 |
Sortie: Hello, World! |
Ajouter des variables à un module
Ensuite, nous verrons comment ajouter des variables au module en plaçant des définitions dans le module :
|
1 2 3 4 5 6 |
# Définir une fonction def world(): print("Hello, World!") # Définir une variable shark = "Sammy" |
Par la suite, vous appellerez la variable dans la fonction print(). Nous l'appellerons dans le fichier main_program.py :
|
1 2 3 4 5 6 7 |
# Importer le module hello import hello # Appeler la fonction hello.world() # Afficher la variable print(hello.shark) |
L'exécution du programme affichera cette sortie :
|
1 2 3 |
Sortie: Hello, World! Sammy |
Ajouter une classe à un module
Enfin, nous verrons comment vous pouvez définir une classe dans votre fichier pour le module. En poursuivant notre exemple, nous allons créer une nouvelle classe appelée Octopus dans le fichier hello.py. Nous lui attribuerons également les attributs de name et color. Ensuite, nous ajouterons une fonction pour la rendre affichable :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# Définir une fonction def world(): print("Bonjour, le monde !") # Définir une variable shark = "Sammy" # Définir une classe class Octopus: def __init__(self, name, color): self.color = color self.name = name def tell_me_about_the_octopus(self): print("Cette pieuvre est " + self.color + ".") print(self.name + " est le nom de la pieuvre.") |
Ensuite, vous devez ajouter la classe vers la fin du fichier main_program.py :
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# Importer le module hello import hello # Appeler la fonction hello.world() # Afficher la variable print(hello.shark) # Appeler la classe jesse = hello.Octopus("Jesse", "orange") jesse.tell_me_about_the_octopus() |
Vous pouvez appeler la classe avec la commande hello.Octopus(). Elle vous montrera les fonctions et les attributs de la classe Octopus dans l'espace de noms du fichier. Ainsi, vous pouvez écrire jesse.tell_me_about_the_octopus() dans la dernière ligne sans invoquer hello. Il est également possible d'appeler un attribut individuel de la classe sans utiliser hello. Par exemple, vous pouvez simplement exécuter jesse.color. Lorsque vous exécutez le programme, il affichera la sortie suivante :
|
1 2 3 4 5 |
Sortie: Bonjour, le monde! Sammy Cette pieuvre est orange. Jesse est le nom 'de la pieuvre. |
Implémentation de code avec des modules
Là où vous pouvez utiliser des modules pour spécifier des définitions, vous pouvez également les utiliser pour implémenter du code. Disons que nous voulons implémenter la fonction world() . Nous allons réécrire complètement notre fichier initial hello.py :
|
1 2 3 4 5 6 |
# Définir une fonction def world(): print("Bonjour, le monde !") # Appeler la fonction au sein du module world() |
Depuis le fichier main_program.py , nous allons tout supprimer à l'exception de l'instruction d'importation, ce qui donne ce qui suit :
|
1 2 |
# Importer le module hello import hello |
L'exécution du fichier de programme principal vous donnera cette sortie puisque le programme implémente et exécute la fonction world() :
|
1 2 |
Sortie: Bonjour, le monde! |
Comment accéder à un module depuis un autre répertoire ?
Maintenant que vous savez comment créer et modifier des modules, vous devez savoir comment y accéder depuis un autre répertoire. Cela est utile lorsque vous devez utiliser un module donné sur un autre projet. Il existe deux façons de procéder que nous expliquerons ci-dessous.
-
Ajout de chemins
La première méthode consiste à activer le chemin du module à l'aide des fichiers de programmation qui utilisent déjà le module. Malheureusement, cela ne signifie pas que le module sera disponible sur l'ensemble du système. Par conséquent, cela n'est considéré que comme une solution temporaire. Elle est souvent employée pendant la phase de développement du projet.
Vous pouvez commencer le processus d'ajout en important le module sys et d'autres modules importants que vous devez utiliser. Nous les importerons dans le fichier du programme principal. Vous pouvez trouver le module sys dans la bibliothèque standard de Python. Vous en avez besoin car il contient les paramètres de base et les fonctions spécifiques à votre système.
Considérons à nouveau notre exemple précédent. Disons que le fichier hello.py se trouve sur le chemin /usr/sammy/ et que le fichier main_program.py se trouve dans un autre répertoire. Nous allons d'abord importer le module hello dans le fichier main_program.py en utilisant d'abord le module sys. Ensuite, nous ajouterons /usr/sammy/ au chemin :
|
1 2 3 4 5 6 |
import sys sys.path.append('/usr/sammy/') import hello ... |
Si vous définissez le chemin correctement, le fichier main_program.py le fichier s'exécutera facilement sans erreurs. Vous recevrez la même sortie que lorsque les deux fichiers se trouvaient dans le même répertoire.
-
Chemin Python
L'autre option que vous pouvez choisir est le chemin Python. Ici, vous ajouteriez le module lui-même à un chemin dans lequel Python recherche les modules et les packages. Comme vous pouvez probablement le déduire, cela rend le module disponible à l'échelle du système, ce qui en fait une solution permanente viable.
Pour ce faire, vous devez déterminer où Python recherche les modules. Vous devrez exécuter l'interpréteur Python depuis l'environnement de programmation, ce qui ressemble à ceci :
|
1 |
python |
L'étape suivante consiste à importer le sys module :
|
1 |
>>> import sys |
Ensuite, affichez le chemin système :
|
1 |
>>> print(sys.path) |
Maintenant, vous verrez un chemin système comme sortie. Il y en aura au moins un. Cependant, il peut y en avoir plusieurs dans un environnement de programmation. Dans la liste, localisez l'environnement que vous utilisez. Gardez à l'esprit que vous pouvez également ajouter le module au chemin Python principal du système. Voici à quoi cela ressemblera :
|
1 2 |
Sortie: '/usr/sammy/my_env/lib/python3.5/site-packages' |
Enfin, déplacez le hello.py fichier dans ce répertoire et importez le module comme suit :
|
1 2 |
import hello ... |
Votre tentative est réussie si le programme exécute le fichier sans produire d'erreurs. Grâce à ce processus, vous pourrez accéder au module depuis n'importe quel répertoire de votre système.
Conclusion
Le but de ce tutoriel était de vous aider à vous familiariser avec l'écriture de modules Python. C'est très similaire à la façon dont vous écririez n'importe quel fichier .py Python. Nous avons d'abord parlé de ce qu'est réellement un module Python et de ses fonctionnalités associées. Ensuite, nous avons découvert comment appliquer ces définitions dans d'autres fichiers de programmation en Python. Enfin, nous avons compris les détails de l'accessibilité des modules. Vous savez maintenant comment écrire des modules en Python 3 ainsi que comment y accéder.
Pour approfondir vos connaissances sur le langage de programmation Python, reportez-vous à notre blog pour plus de ressources :
- Python 3 : Un guide sur la conversion des types de données
- Les boucles en Python 3 : Utilisation des instructions Break, Continue et Pass
- Utilisation des formateurs de chaînes de caractères en Python 3
Bonne programmation !
Commentaires
Aucun commentaire pour l'instant. Soyez le premier.