Ce sera le dernier tutoriel de la série des rafraîchisseurs Python. Bien sûr, je ne peux pas terminer cette série à moins que je ne passe au niveau suivant de programmation, à savoir travailler avec modules, qui sont considérés comme fondamentaux lors du traitement de tâches de programmation non triviales.
Les tâches de programmation non triviales impliquent la plupart du temps de longs programmes comportant de nombreuses lignes de code. Les modules sont pratiques car ils tentent de décomposer de tels programmes complexes en morceaux gérables et permettent la réutilisation du code. De cette façon, vous pourrez également utiliser le code à tout moment en importer ce module. Vous pouvez également résoudre le problème de la copie de plusieurs fonctions dans différents programmes en le gérant via des modules..
Passons à la fin du didacticiel et voyons comment nous pouvons travailler avec des modules en Python..
Lorsque vous avez créé des programmes Python, vous les mettiez dans un fichier source se terminant par .py
. Les modules en Python sont simplement créés de cette façon. Autrement dit, ce sont des fichiers source se terminant par .py
, et situés dans un répertoire où Python est capable de les trouver (c'est-à-dire le répertoire de travail en cours ou répertoriés dans sys.path).
Les modules contiennent normalement des instructions liées les unes aux autres. Comme mentionné ci-dessus, nous pouvons utiliser des modules à tout moment. Utiliser un module signifie utiliser le code (c'est-à-dire les variables, les fonctions) stocké dans ce module. Le processus d’élaboration et d’utilisation de ce code s’appelle importer.
Créer un module en Python est très simple. Supposons que nous voulions créer un module permettant d’imprimer le nom d’une personne. Tapez le code suivant en utilisant votre éditeur préféré et enregistrez-le sous myname.py
. Ce sera le nom de votre module en excluant le .py
partie, qui sera assignée à la variable globale __prénom__
.
def print_name (n): affiche 'Hi', n
Si vous avez un autre fichier Python dans lequel vous souhaitez utiliser le code du module défini ci-dessus, nous importerons le module à l'aide de la commande importation
mot clé, comme suit:
import myname name.print_name ('Abder')
La sortie de ce script sera: Salut abder
.
Assurez-vous que Python est capable de trouver le fichier importé. Par exemple, placez-le dans le même répertoire que le fichier Python où vous avez utilisé importation
.
Comme vous pouvez le constater, l’importation d’un module nous permet d’améliorer notre programme en lui ajoutant de nouvelles fonctionnalités à partir de fichiers externes (modules)..
Mais que se passe-t-il ici dans les coulisses? Lorsque vous importation
un module, Python compile ce module et génère un .pyc
fichier, et un programme est seulement recompilé si le .py
est plus récent que le .pyc
fichier.
Prenons un autre exemple, mais cette fois-ci avec un module intégré Python. Choisissons le module de mathématiques. Dans cet exemple, pour un numéro que nous passons, nous voulons trouver le plafond (la plus petite valeur entière supérieure ou égale au nombre), sol (le plus grand nombre entier inférieur ou égal au nombre), et le valeur absolue de ce nombre. Le script Python de ce programme se présente comme suit:
import math x = 4.7 print 'Le plafond de' + str (x) + 'est:' + str (math.ceil (x)) print 'Le plancher de' + str (x) + 'est:' + str ( math.floor (x)) print 'La valeur absolue de' + str (x) + 'est:' + str (math.fabs (x))
Si vous exécutez ce script, le résultat devrait ressembler à ceci:
Le plafond de 4,7 est: 5,0 Le plancher de 4,7 est: 4,0 La valeur absolue de 4,7 est: 4,7
Nous avons donc pu appliquer différentes opérations sur notre numéro sans écrire de code pour chaque opération, mais plutôt en réutiliser fonctions déjà disponibles dans le math
module. Cela aide beaucoup, n'est-ce pas?
Vous vous demandez peut-être, devrions-nous toujours utiliser le math.function ()
notation? Ne pouvons-nous pas utiliser la fonction immédiatement sans la faire précéder du nom du module (i.e. math
)? Oui, vous pouvez le faire en utilisant la syntaxe suivante pour le importation
:
de math import *
De cette façon, vous pouvez appeler les fonctions précédentes (ceil (x)
, étage (x)
, et fabs (x)
) sans qu'il soit nécessaire de les faire précéder du nom du module, math
.
Revenons à notre module simple, myname.py
:
def print_name (n): affiche 'Hi', n
Pouvons-nous traiter ce module comme un script autonome (principal) que nous pouvons directement exécuter et transmettre des arguments depuis la ligne de commande? Par exemple, que se passera-t-il si vous avez tapé ce qui suit dans votre ligne de commande?
python myname.py 'Abder'
Rien! Essayez-le, vous n'obtiendrez aucune sortie.
Pour pouvoir exécuter le module en tant que script, nous devons définir __name__ = '__main__
'. Donc, le module mon nom
va maintenant ressembler à ceci:
def print_name (n): print 'Hi', n si __name__ == '__main__': importation sys print_name (sys.argv [1])
Si vous exécutez cette commande dans votre terminal: python myname.py 'Abder'
, vous devriez obtenir le résultat suivant:
Salut abder
Un concept important associé aux modules est celui de paquets. Un paquet est une collection de modules. En d'autres termes, lorsqu'un module est un fichier, un package est un répertoire / dossier. C'est une manière par laquelle nous structurons les modules en utilisant des noms de modules en pointillés. Donc si vous voyez un importation
déclaration qui ressemble à:
import université.department
Cela signifie que nous avons un module appelé département
dans le paquet Université
.
Comme nous pouvons le constater, l’utilisation de modules nous permet de scinder un programme complexe en morceaux faciles à gérer, ce qui facilite le suivi des erreurs dans le programme, une meilleure compréhension de ses fonctionnalités et une plus grande réutilisabilité..
Avec cela, nous arrivons à la fin de la Série de rafraîchissements Python. Dans cette série, nous avons appris les bases et les concepts nécessaires qu’il est nécessaire de comprendre pour progresser dans le langage de programmation Python. Nous avons appris les concepts de listes, de dictionnaires et de tuples. Nous avons également appris à prendre des décisions en fonction de conditions (lien vers les conditions Python) et répétez les boucles (lien vers les boucles Python). Nous avons également appris à travailler avec des fonctions, à créer des classes et à les instancier (c'est à dire. objets), et emballons notre travail en modules.