Importer toutes les fonctions du fichier en Python

Muhammad Maisam Abbas 30 janvier 2023
  1. Importer toutes les fonctions d’un fichier avec l’instruction import * en Python
  2. Raison de ne pas utiliser l’approche import *
Importer toutes les fonctions du fichier en Python

Ce tutoriel discutera de la méthode pour importer toutes les fonctions d’un fichier en Python.

Importer toutes les fonctions d’un fichier avec l’instruction import * en Python

L’instruction import est utilisée pour importer des packages, des modules et des bibliothèques dans notre code Python.

Nous pouvons utiliser import * si nous voulons tout importer à partir d’un fichier dans notre code. Nous avons un fichier nommé functions.py qui contient deux fonctions square() et cube().

On peut écrire from functions import * pour importer les deux fonctions dans notre code. Nous pouvons alors utiliser les fonctions square() et cube() dans notre code.

L’extrait de code suivant montre une implémentation fonctionnelle de cette approche.

from functions import *

print(cube(3))

Production :

27

Nous avons importé toutes les fonctions à l’intérieur du fichier functions.py dans notre code avec l’instruction import * en Python.

Nous avons ensuite appelé la fonction cube() dans le fichier functions.py et imprimé le cube de 3. Bien que cette méthode fasse le travail, il n’est pas conseillé de l’utiliser.

Raison de ne pas utiliser l’approche import *

Cette approche utilise une instruction import implicite, alors qu’en Python, il est toujours conseillé d’utiliser des instructions import explicites.

Selon le zen de Python, L'explicite est meilleur que l'implicite. Il y a deux raisons principales à cette déclaration.

La première raison est qu’il est très difficile de comprendre quelle fonction provient de quel fichier à mesure que la taille du projet augmente, et nous finissons par importer des fonctions à partir de plusieurs fichiers. Il est particulièrement difficile pour quelqu’un d’autre de lire notre code et de bien comprendre ce qui se passe.

Cela rend notre code très difficile à déboguer et à maintenir. Ce problème est mis en évidence dans l’extrait de code suivant.

from functions import *
from functions1 import *
from functions2 import *

print(square(2))

Production :

4

Dans l’extrait de code ci-dessus, il est impossible de savoir où la fonction square() d’origine est définie en regardant simplement le code. Pour bien comprendre l’origine de la fonction square(), il faut explorer tous les fichiers manuellement.

La deuxième raison clé est que si nous avons deux fonctions avec le même nom dans plusieurs fichiers, l’interpréteur utilisera la déclaration import la plus récente. Ce phénomène est démontré dans l’extrait de code suivant.

from functions2 import *
from functions import *

print(hello())

print(hello())
print(hello())

Production :

hello from functions
hello from functions2
hello from functions2

Les deux fichiers functions.py et functions2.py contiennent tous deux une fonction hello().

Dans la première ligne de sortie, nous avons importé le fichier functions.py, et donc la fonction hello() à l’intérieur de ce fichier est exécutée. Dans les deuxième et troisième lignes de sortie, nous avons également importé le fichier functions2.py, contenant une fonction hello().

Ainsi, la nouvelle fonction hello() est exécutée dans les deux dernières lignes de sortie.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Article connexe - Python Import