FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Comment créer, importer et réutiliser votre propre module en Python

Que vous soyez un expert ou un débutant en programmation Python, vous devez être familiarisé avec les modules d'importation commander. Cependant, en tant que nouveau venu, vous ne savez peut-être pas d'où viennent ces modules.

Examinons plus en détail l'origine de ces modules, ainsi que la manière de les créer et de les importer pour les réutiliser.

Qu'est-ce que la réutilisabilité du code et pourquoi devriez-vous le faire ?

L'une des meilleures pratiques lorsque vous travaillez avec la plupart des langages côté serveur consiste à modulariser votre code afin qu'il soit réutilisable. Parce que Python est orienté objet, c'est l'un de ces langages qui rend possible la réutilisation du code.

La modularisation du code consiste à écrire des codes qui exécutent différentes instructions dans des blocs. Il est utilisé pour séparer les tâches les unes des autres.

Lorsque vous modularisez un code, vous lui donnez un nom unique. Ce nom est son identité et signifie que la prochaine fois que vous devrez utiliser ce bloc de code, vous n'aurez qu'à appeler son nom et non le code entier.

Cette pratique rend votre travail beaucoup plus facile et plus rapide lors d'un projet réel. La modularisation du code améliore également la vitesse d'exécution et facilite les tests. Essentiellement, cela rend votre code plus efficace et lisible.

Bien que notre exemple ici ne soit pas basé sur la programmation orientée objet (POO), nous devons en discuter brièvement avant de passer à la création d'un module.

Le code que vous avez l'intention de réutiliser peut parfois être autonome en tant que fonctions individuelles. Mais cela peut aussi prendre la forme de méthodes dans une classe . C'est alors que le concept de POO entre en jeu.

Programmation orientée objet en Python

La POO est la présentation de codes comme des objets indépendants sous la forme d'une classe. Chaque objet possède alors ses attributs et ses méthodes.

Ces attributs sont les caractéristiques de la classe, tandis que chaque méthode définit le comportement des attributs.

Au lieu d'écrire du code long qui est moins efficace --- une convention dans la programmation procédurale --- votre code devient plus efficace et spécifique en POO. La raison en est que les fonctions et les données sont stockées dans des classes indépendantes en POO, contrairement à la séparation des deux en programmation procédurale.

Chaque classe que vous créez prend alors une identité. Ainsi, lorsque vous avez besoin d'un module nommé d'une classe, vous l'appelez en référence à cette classe.

Pour mieux comprendre, consultez notre guide du débutant pour comprendre la POO.

Créer des fonctions réutilisables :un exemple pratique

Passons à autre chose, voyons comment nous pouvons réutiliser la fonction pour un compteur de mots dans un autre fichier Python. Ce guide se concentrera uniquement sur la création de fonctions réutilisables qui ne sont pas à l'intérieur d'un objet.

Tout d'abord, ouvrez une invite de commande à n'importe quel emplacement de votre ordinateur pour démarrer un nouveau projet. Dans ce cas, nous utiliserons un nom de projet de word_count . Pour ce faire, tapez mkdir word_count .

Ensuite, utilisez votre outil d'environnement virtuel préféré pour créer un nouvel environnement virtuel. Si vous en avez déjà créé un, activez-le simplement. Assurez-vous que vous êtes toujours dans le répertoire de votre projet.

Comment créer, importer et réutiliser votre propre module en Python

Comme bonne pratique, pour créer la fonction de compteur de mots, nous essayons d'abord de trouver une formule brute pour la calculer. Généralement, vous pouvez trouver un nombre de mots en ajoutant un au nombre d'espaces dans une phrase. Notez que même si vous n'avez peut-être pas besoin d'un nombre de mots, c'est la façon dont l'idée est liée à la réutilisabilité du code qui compte pour cette explication.

Ensuite, ouvrez un éditeur de texte à l'emplacement de votre projet et créez un nouveau fichier Python. Dans ce cas, le fichier est nommé wordcounter.py; assurez-vous d'utiliser le bon .py extension.

Voici ce que le compteur de mots le fichier ressemble à :

# crée une variable appelée mot qui contient des chaînes 
word =['comment faire un compteur de mots en python']
# Ensuite, parcourez la variable pour compter les mots dans la variable créée
NumberOfWords =[EachWord.count(' ') + 1 pour EachWord dans le mot]
print(NumberOfWords)
sortie :[8]

Maintenant que le code brut fonctionne, nous le modularisons en créant une fonction qui rend le code réutilisable :

def CountWords(words) :
si mots n'est pas Aucun :
NumberOfWords =[Eachword.count(' ') + 1 pour Eachword en mots]
retourner NumberOfWords
mywords =['faire un compteur de mots en python']
print(CountWords(mywords))
sortie :[6]

C'est ça; nous avons créé un module de compteur de mots. Voyons comment le réutiliser.

Importer le module créé

N'oubliez pas que vous avez précédemment créé un fichier nommé wordcounter.py . Ce fichier contient une fonction appelée CountWords . Si vous avez besoin de cette fonction dans un nouveau fichier et que vous ne voulez pas réécrire tout le code ou la fonction, tout ce que vous avez à faire est d'importer cette fonction en tant que module dans votre nouveau fichier.

Notez que tous vos fichiers Python doivent être dans le même répertoire, dans ce cas. Pour vous en assurer, créez simplement un nouveau fichier Python dans le même répertoire où vous avez le wordcounter.py fichier.

Voici à quoi ressemble le nouveau fichier :

from wordcounter import CountWords 
mots =["comment importer et réutiliser votre code en Python"]
Compter les mots (mots)
sortie :[9]

Dans l'extrait ci-dessus, CountWords est la fonction à l'intérieur de wordcounter.py fichier. Pour réutiliser cette fonction dans un nouveau fichier Python, nous l'importons depuis son fichier parent (wordcounter.py ).

Importation de votre module créé absolument

Que faire si le nouveau fichier n'est pas dans le même répertoire que le fichier du module ? Dans ces cas, vous devez référencer le module en utilisant une importation absolue.

Pour mieux comprendre cela, supposons que vous ayez créé un nouveau fichier dans le répertoire de votre projet. Mais le fichier à partir duquel vous avez l'intention d'importer votre fonction (qui est wordcounter , dans ce cas), se trouve dans un autre dossier du répertoire de votre projet --- appelons ce dossier subword_count .

Pour importer votre module depuis wordcounter (qui est maintenant à l'intérieur du subword_count dossier) dans un nouveau fichier Python, vous devez absolument l'appeler. Pour voir comment cela fonctionne, créez un nouveau fichier dans le répertoire de votre projet, donnez-lui le nom de votre choix et importez votre module comme indiqué dans l'extrait de code ci-dessous :

depuis subword_count.wordcounter importer CountWords 
mots =["comment importer et réutiliser votre code en Python pour des fichiers dans différents dossiers."]
Compter les mots (mots)
sortie :[14]

Lors d'une importation absolue, Python parcourt le dossier parent (subword_count dans ce cas) et localise le fichier ou le module contenant la fonction d'intérêt (CountWords ).

Comment créer, importer et réutiliser votre propre module en Python

Pour décomposer la signification de l'importation absolue ci-dessus, subword_count est un dossier dans le répertoire de votre projet qui contient le wordcounter.py fichier. Ce fichier contient alors les CountWords fonction.

Où fonctionne la réutilisabilité du code ?

La modularisation et la réutilisation de votre code est une bonne pratique pour tout projet que vous exécutez. Si vous écrivez la POO, ce que vous ferez probablement souvent, vous pouvez importer une classe à partir d'un module ou appeler une fonction à partir d'une classe. Si la classe est dans un dossier, importez-la absolument dans votre nouveau fichier.

La même pratique s'applique aux fonctions qui ne sont pas dans un objet. Selon la disposition de votre projet, vous pouvez les importer de manière explicite ou absolue, comme nous l'avons fait ci-dessus.


[]