Importer le module dans Python avec des exemples
Quels sont les modules dans Python?
Un module est un fichier avec du code python. Le code peut se prรฉsenter sous la forme de variables, de fonctions ou de classes dรฉfinies. Le nom du fichier devient le nom du module.
Par exemple, si votre nom de fichier est guru99.py, le nom du module sera guru99. Avec la fonctionnalitรฉ du module, vous pouvez diviser votre code en diffรฉrents fichiers au lieu de tout รฉcrire dans un seul fichier.
Qu'est ce que le Python module d'importation ?
Un fichier est considรฉrรฉ comme un module en python. Pour utiliser le module, vous devez l'importer en utilisant l'importation mot-clรฉ. La fonction ou les variables prรฉsentes ร l'intรฉrieur du fichier peuvent รชtre utilisรฉes dans un autre fichier en important le module. Cette fonctionnalitรฉ est disponible dans d'autres langues, comme TypeScript, JavaScript, java, ruby, etc.
Comment crรฉer et importer un module dans Python?
Nous allons maintenant crรฉer un module et l'importer dans un autre fichier.
Voici le flux pour crรฉer et importer le module comme indiquรฉ dans la capture d'รฉcran :
Suivez les รฉtapes indiquรฉes pour crรฉer un module en python.
La structure des dossiers utilisรฉe pour tester le code est la suivante :
modtest/ test.py display.py
รtape 1) Crรฉez un fichier et nommez-le test.py
รtape 2) Dans test.py, crรฉez une fonction appelรฉe display_message()
Def display_message():
return "Welcome to Guru99 Tutorials!"
รtape 3) Crรฉez maintenant un autre fichier display.py.
รtape 4) Dans display.py, importez le fichier moduletest.py, comme indiquรฉ ci-dessous :
import test
Lors de l'importation, vous n'รชtes pas obligรฉ de mentionner le test.py mais juste le nom du fichier.
รtape 5) Ensuite, vous pouvez appeler la fonction display_message() depuis test.py dans display.py, vous devez utiliser module_name.function_name.
Par exemple test.display_message().
Import test print(test.display_message())
รtape 6) Lorsque vous exรฉcutez display.py, vous obtiendrez ce qui suit Sortie :
Welcome to Guru99 Tutorials!
Importer une classe dans Python
Plus tรดt, nous avons vu un module simple avec une fonction. Ici, nous crรฉerons une classe et ferons rรฉfรฉrence ร la classe dans un autre fichier.
La structure des dossiers pour tester le code est la suivante :
myproj/ Car.py display.py
Crรฉez un fichier appelรฉ Car.py avec le code suivant :
Nom du fichier : Car.py
class Car:
brand_name = "BMW"
model = "Z4"
manu_year = "2020"
def __init__(self, brand_name, model, manu_year):
self.brand_name = brand_name
self.model = model
self.manu_year = manu_year
def car_details(self):
print("Car brand is ", self.brand_name)
print("Car model is ", self.model)
print("Car manufacture year is ", self.manu_year)
def get_Car_brand(self):
print("Car brand is ", self.brand_name)
def get_Car_model(self):
print("Car model is ", self.model)
Dans le fichier Car.py , il y a les attributs brand_name, model et manu_year. Les fonctions dรฉfinies ร l'intรฉrieur de la classe sont car_details(), get_Car_brand(), get_Car_model().
Utilisons maintenant le fichier Car.py comme module dans un autre fichier appelรฉ display.py.
Nom du fichier : display.py
import Car
car_det = Car.Car("BMW","Z5", 2020)
print(car_det.brand_name)
print(car_det.car_details())
print(car_det.get_Car_brand())
print(car_det.get_Car_model())
Sortie :
BMW Car brand is BMW Car model is Z5 Car manufacture year is 2020 Car brand is BMW Car model is Z5
Nous pouvons donc accรฉder ร toutes les variables et fonctions de Car.py en utilisant le module Car.
Utilisation du module d'importation
Vous ne pouvez importer qu'une petite partie du module, c'est-ร -dire uniquement les fonctions et noms de variables requis du module au lieu d'importer le code complet.
Lorsque vous souhaitez importer uniquement des รฉlรฉments spรฉcifiques, vous pouvez utiliser le mot-clรฉ ยซ from ยป pour importer ce que vous voulez.
La syntaxe est donc
from module import your function_name , variables,... etc.
La structure des dossiers utilisรฉe pour tester le code est la suivante :
modtest/ test.py display.py
Dans test.py il y a 2 fonctions comme indiquรฉ :
Nom du fichier : test.py
defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Maintenant, vous voulez la fonction display_message(). La fonction ou la variable que vous importez est directement accessible comme indiquรฉ ci-dessous :
Nom du fichier : display.py
from test import display_message print(display_message())
Sortie :
Welcome to Guru99 Tutorials!
Maintenant, si vous utilisez la fonction display_message1() , cela gรฉnรฉrera une erreur indiquant que la fonction n'est pas dรฉfinie comme indiquรฉ ci-dessous :
from test import display_message print(display_message1())
Sortie :
Traceback (most recent call last): File "display.py", line 3, in <module> print(display_message1()) Name Error: name 'display_message1' is not defined
Importer tout depuis le module
Import vous permet d'importer le module complet en utilisant import suivi du nom du module, c'est-ร -dire le nom du fichier ou de la bibliothรจque ร utiliser.
syntaxe:
Import module
Ou en utilisant
from module import *
La structure des dossiers utilisรฉe pour tester le code est la suivante :
modtest/ test.py display.py
Voici les dรฉtails du code dans test.py
my_name = "Guru99" my_address = "Mumbai" defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Utiliser le module d'importation
En utilisant simplement le nom du module d'importation, pour faire rรฉfรฉrence aux variables et aux fonctions ร l'intรฉrieur du module, il doit รชtre prรฉfixรฉ par le nom du module.
Exemple
Nom du fichier : display.py
Import test print(test.display_message()) print(test.display_message1()) print(test.my_name) print(test.my_address)
Le nom du module test est utilisรฉ pour faire rรฉfรฉrence ร la fonction et aux variables ร l'intรฉrieur du test du module.
Sortie :
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Utilisation de l'importation *
Voyons un exemple utilisant importer *. En utilisant importer *, les fonctions et variables sont directement accessibles, comme le montre l'exemple ci-dessous :
from test import * print(display_message()) print(display_message1()) print(my_name) print(my_address)
Sortie :
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
La fonction dir( )
Le dir() est une fonction intรฉgrรฉe en python. Le dir() renvoie toutes les propriรฉtรฉs et mรฉthodes, y compris les propriรฉtรฉs intรฉgrรฉes de l'objet donnรฉ.
Ainsi, lorsque dir() est utilisรฉ sur le module, il vous donnera les variables, fonctions prรฉsentes ร l'intรฉrieur du module.
Voici un exemple fonctionnel de dir() sur un module. Nous avons une classe appelรฉe Car.py, importons Car et attribuons-la ร dir() pour voir le rรฉsultat.
La structure des dossiers pour tester le code sera la suivante :
test prop/ Car.py test.py
Nom du fichier : Car.py
class Car:
brand_name = "BMW"
model = "Z4"
manu_year = "2020"
def __init__(self, brand_name, model, manu_year):
self.brand_name = brand_name
self.model = model
self.manu_year = manu_year
def car_details(self):
print("Car brand is ", self.brand_name)
print("Car model is ", self.model)
print("Car manufacture year is ", self.manu_year)
def get_Car_brand(self):
print("Car brand is ", self.brand_name)
def get_Car_model(self):
print("Car model is ", self.model)
Nom du fichier : test.py
import Car class_contents = dir(Car) print(class_contents)
La sortie nous donne le nom de la classe et toutes les fonctions dรฉfinies dans Car.py.
Vous pouvez รฉgalement essayer d'utiliser dir() sur un module intรฉgrรฉ disponible dans Python. Essayons la mรชme chose sur json module comme indiquรฉ dans lโexemple ci-dessous. Il affichera toutes les propriรฉtรฉs et mรฉthodes disponibles dans json module.
Import json json_details = dir(json) print(json_details)
Sortie :
['JSONDecodeError', 'JSONDecoder', 'JSONEncoder', '__all__', '__author__', '__bu iltins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__pac kage__', '__path__', '__spec__', '__version__', '_default_decoder', '_default_en coder', 'codecs', 'decoder', 'detect_encoding', 'dump', 'dumps', 'encoder', 'loa d', 'loads', 'scanner']
Packs
Un package est un rรฉpertoire dans lequel tous les modules sont dรฉfinis. Pour faire un Python l'interprรจte le traite comme un package, votre rรฉpertoire doit avoir le fichier init.py. Le init.py crรฉe le rรฉpertoire sous forme de package. Voici la disposition du package sur lequel nous allons travailler.
Le nom du paquet est mon colis. Pour commencer ร travailler avec le package, crรฉez un rรฉpertoire appelรฉ package/. Dans le rรฉpertoire, crรฉez un fichier vide appelรฉ __init__.py. Crรฉez 3 fichiers supplรฉmentaires module1.py, module2.py et module3.py et dรฉfinissez les fonctions comme indiquรฉ dans la capture d'รฉcran. Voici les dรฉtails de module1.py, module2.py et module3.py
module1.py
def mod1_func1():
print("Welcome to Module1 function1")
def mod1_func2():
print("Welcome to Module1 function2")
def mod1_func3():
print("Welcome to Module1 function3")
module2.py
def mod2_func1():
print("Welcome to Module2 function1")
def mod2_func2():
print("Welcome to Module2 function2")
def mod2_func3():
print("Welcome to Module2 function3")
module3.py
def mod3_func1():
print("Welcome to Module3 function1")
def mod3_func2():
print("Welcome to Module3 function2")
def mod3_func3():
print("Welcome to Module3 function3")
Le paquetest prรชt ร lโemploi. Appelez maintenant le package dans l'un de vos fichiers comme indiquรฉ ci-dessous :test.py :
Ici, le mypackage.module1 est importรฉ et reรงoit un nom d'alias comme mod1. De mรชme, vous pouvez utiliser d'autres modules module2.py et module3.py de mon package.
import mypackage.module1 as mod1 print(mod1.mod1_func1()) print(mod1.mod1_func2()) print(mod1.mod1_func2())
Sortie :
Welcome to Module1 function1 None Welcome to Module1 function2 None Welcome to Module1 function2 None
Nous venons de dรฉmontrer le package avec un module simple contenant des fonctions. Selon votre projet, vous pouvez รฉgalement crรฉer un package avec des sous-packages. Sous-dossiers/ayant des modules avec des classes dรฉfinies.
Python Chemin de recherche du module
Pendant l'exรฉcution, lorsque Python apparaรฎt nom du module d'importation, l'interprรจte tente de localiser le module. Il recherche le module dans la liste des modules intรฉgrรฉs. Later en tout, les rรฉpertoires dรฉfinis dans sys.path.
En rรฉsumรฉ, l'interprรจte effectue la recherche suivante pour localiser le module :
- Dans votre rรฉpertoire actuel.
- Dans la liste des modules intรฉgrรฉs
- Dans les rรฉpertoires sys.path
Vous pouvez obtenir les dรฉtails de sys.path en important le module sys et en imprimant le sys.path. Il vous donnera la liste des rรฉpertoires comme indiquรฉ ci-dessous :
importsys print(sys.path)
Sortie :
['Python Latest\\task2', 'Users\\AppData\\Local\\Programs\\Python\ \Python37\\python37.zip', 'Users\\AppData\\Local\\Programs\\Python\\P ython37\\DLLs']
Vous pouvez รฉgalement modifier le chemin et conserver les rรฉpertoires selon vos besoins.
Utilisation de l'alias de module dans l'importation
Vous pouvez รฉgalement convertir le nom du module en une forme plus courte en lui donnant un alias. L'alias peut รชtre crรฉรฉ ร l'aide du mot-clรฉ.
syntaxe:
import filename as alias name
La structure des dossiers pour tester le code sera la suivante :
Mod test/ test.py display.py
Voici le code dans test.py
my_name = "Guru99" my_address = "Mumbai" def display_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Nous allons maintenant utiliser un alias pour test.py dans display.py
Import test as t print(t.display_message()) print(t.display_message1()) print(t.my_name) print(t.my_address)
L'alias utilisรฉ pour le module de test est t . Ainsi, la fonction et les variables de test.py peuvent รชtre rรฉfรฉrencรฉes en utilisant l'alias t.
Sortie :
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Importations absolues et relatives dans Python
Vous savez maintenant comment importer un fichier en tant que module dans un autre fichier. Voyons maintenant comment gรฉrer les fichiers disponibles dans les dossiers. Les fichiers des dossiers peuvent รชtre importรฉs ร l'aide d'importations absolues ou relatives.
Considรฉrez que vous avez la structure des dossiers de votre projet, comme indiquรฉ ci-dessous :
Le dossier racine est mon projet/. Il contient deux sous-dossiers package1 et package2.
Le dossier package1 contient deux modules, module1.py et module2.py.
Le dossier package2 a une classe myclass.py, un sous-package subpkg avec module3.py et le dernier module4.py.
- Dans module1.py, il existe une fonction appelรฉe myfunc1.
- Dans module2.py, il existe une fonction appelรฉe myfunc2.
- Dans module3.py, il existe une fonction appelรฉe myfunc3.
- Dans module4.py, il existe une fonction appelรฉe myfunc4.
Utilisation des importations absolues
Pour les importations absolues, vous devez ajouter le chemin complet de votre module directement ร partir du dossier racine du projet.
Voyons maintenant comment utiliser les importations absolues pour faire rรฉfรฉrence aux fonctions prรฉsentes dans chacun des modules.
Pour travailler avec la fonction myfunc1, vous devrez importer comme suit :
from package1.module1 import myfunc1 or from package1 import module1 module1.myfunc1()
Pour travailler avec la fonction myfunc3 vous devrez importer comme suit :
from package1.subpkg.module3 import myfunc3 or from package1.subpkg import module3 module3.myfunc3()
Avantages et inconvรฉnients de l'utilisation des importations absolues
Voici les avantages de lโutilisation des importations absolues :
- Il devient facile de retracer les modules pour la vรฉrification du code.
- Facile ร utiliser et trรจs simple.
- Si le projet est dรฉplacรฉ vers un chemin diffรฉrent, les importations resteront les mรชmes.
Inconvรฉnients de l'utilisation des importations absolues
Voici les inconvรฉnients de lโutilisation des importations absolues :
Inconvรฉnients :
- Le chemin d'importation peut devenir trรจs long dans le cas oรน les modules sont imbriquรฉs et si le nom des modules est long.
Utilisation des importations relatives
En considรฉrant la mรชme structure de dossiers mentionnรฉe ci-dessous, nous verrons comment les importer ร l'aide d'importations relatives.
En importation relative, le module ร importer est relatif ร l'emplacement actuel qui est l'emplacement oรน l'instruction d'importation est prรฉsente.
Syntaxe
Dans les importations relatives, vous devez ajouter un point (.) avant le nom du module lors de l'importation ร l'aide de ร partir de.
Il y aura 2 points (..) avant le nom du module si le module se trouve au niveau supรฉrieur ร celui de l'emplacement actuel.
En nous rรฉfรฉrant ร la figure de structure des dossiers mentionnรฉe ci-dessus, nous avons les modules suivants avec leur fonction, auxquels nous devons nous rรฉfรฉrer.
- Dans module1.py, il existe une fonction appelรฉe myfunc1.
- Dans module2.py, il existe une fonction appelรฉe myfunc2.
- Dans module3.py, il existe une fonction appelรฉe myfunc3.
- Dans module4.py, il existe une fonction appelรฉe myfunc4.
Pour travailler avec la fonction myfunc1, vous devrez importer comme suit :
from .module1 import myfunc1
Pour travailler avec la fonction myfunc3, vous devrez importer comme suit :
from .subpkg.module3 import myfunc3
Avantages des importations relatives
Avantages :
- Il est facile de travailler avec des importations relatives.
- ร partir de l'emplacement actuel, les importations peuvent รชtre raccourcies par rapport aux importations absolues.
Inconvรฉnients des importations relatives
Inconvรฉnients :
- En utilisant les importations relatives, il est difficile de retracer oรน rรฉside le code
Rรฉsumรฉ
- Importer dans Python vous aide ร faire rรฉfรฉrence au code, c'est-ร -dire aux fonctions/objets qui sont รฉcrits dans un autre fichier. Il est รฉgalement utilisรฉ pour importer des bibliothรจques/packages Python qui sont installรฉs ร l'aide de pip (gestionnaire de packages Python), et que vous devez ensuite utiliser dans votre code.
- La fonctionnalitรฉ d'importation est disponible dans d'autres langues comme TypeScript, JavaScript, java, ruby, etc.
- Un module est python, c'est le code รฉcrit dans le fichier, par exemple (test.py). Dans votre fichier, vous pouvez dรฉfinir vos variables, fonctions ou votre classe. Le fichier entier devient un module et peut รชtre importรฉ dans un autre fichier pour faire rรฉfรฉrence au code.
- Avec la fonctionnalitรฉ du module, vous pouvez diviser votre code en diffรฉrents fichiers au lieu de tout รฉcrire dans un seul fichier. Later, en utilisant l'importation, vous pouvez vous rรฉfรฉrer au code contenu dans le fichier dont vous avez besoin.
- Python a ses modules intรฉgrรฉs, ainsi que des bibliothรจques/packages externes installรฉs ร l'aide d'un gestionnaire de paquets python (pip), par exemple, pandas, NumPy, etc. sont appelรฉs modules.
- Vous ne pouvez importer qu'une petite partie du module, c'est-ร -dire uniquement les fonctions et noms de variables requis du module au lieu d'importer le code complet.
- Vous pouvez รฉgalement convertir le nom du module en une forme plus courte en lui donnant un alias. L'alias peut รชtre crรฉรฉ ร l'aide du mot-clรฉ.
- Un package est un rรฉpertoire dans lequel tous les modules sont dรฉfinis. Pour faire un Python l'interprรจte le traite comme un package, votre rรฉpertoire doit avoir le fichier __init.py. Le init.py crรฉe le rรฉpertoire sous forme de package. Voici la disposition du package sur lequel nous allons travailler.
- Pendant l'exรฉcution, lorsque Python apparaรฎt nom du module d'importation, l'interprรจte tente de localiser le module. Il recherche le module dans la liste des modules intรฉgrรฉs. Later en tout, les rรฉpertoires dรฉfinis dans sys.path.
- Pour les importations absolues, vous devez ajouter le chemin complet de votre module directement ร partir du dossier racine du projet.
- En importation relative, le module ร importer est relatif ร l'emplacement actuel qui est l'emplacement oรน l'instruction d'importation est prรฉsente.



