16. Réutiliser - import
¶
Le mot-clé import
permet d’importer un module déjà prêt à utiliser.
Vous pouvez vous-même créer des modules avec des fonctions utiles que vous pouvez réutiliser dans vos projets, ou partager avec d’autres personnes.
Pour qu’un module soit utile il faut :
bien le documenter
bien le tester
le rendre le plus général possible
16.1. Le nom d’un module¶
Dans Python, la variable spéciale __name__
designe le nom du module (fichier code) actuel.
si le module est executé comme programme principale, cette variable est égale à
'__main__'
si le module est importé par un autre programe, cette variable est égale au nom du module.
Exercice 1
Téléchargez les deux fichiers et exécutez les. Que constatez-vous ?
Quand vous executé mymodule
vous devrez obtenir
__main__
test de mymodule
Quand vous executé main
qui importe mymodule
vous devrez obtenir
mymodule
__main__
test de main
Vous constatez que :
la partie test est seulement executé quand le fichier est exécuté comme principal
le nom du module est alors
'__main__'
quand le module est importé,
__name__
est égale au nom du fichierla partie test n’est pas exécuté
16.2. PixelArt¶
Le module pixelart
definit deux fonctions. La structure du fichier est:
docstring qui explique le module
définition des fonctions
test des fonctions
Vous constaterez que:
seulement 25% des lignes constitutent du code util
25% (autant que le code) constitue de la documentation
50% (la moitié) sert à tester le code
16.3. Docstring¶
Le docstring au début du module et dans chaque fonction est utilisé par Python pour produire la documetation help. Un docstring est une chaîne de caractères multiligne, entourés de triples guillemets doubles ("""
).
Documenter un module¶
La documentation pour un module est le premier élément du fichier code. Il a la forme suivante:
"""
Description en une ligne
(ligne vide)
Explication détaillée du module en plusieurs lignes
"""
Documenter une fonction¶
Le docstring pour une fonction suit immédiatement la ligne de définition de fonction. Il explique en une ligne l’essentiel de ce que fait la fonction.
Il explique ensuite la signification de chaque argument.
Le nom de l’argument et son explication sont séparé par --
.
"""Description en une ligne
(ligne vide)
Arguments:
d -- explication de l'argument d
e -- explication de ...
"""
Afficher Help¶
La fonction help(module)
dans la console permet d’afficher la documentation sur un module
Exercice 2
Téléchargez le module pixelart
exécutez le code suivant dans la console.
import pixelart
help(pixelart)
Vous devriez obtenir ceci.
Help on module pixelart:
NAME
pixelart - Dessine des images PixelArt
DESCRIPTION
Ce module definit les fonctions:
- pixel(d, w, pen, fill)
- pixelart(image, palette, d, w, pen):
FUNCTIONS
pixel(d, w=1, pen='black', fill=None)
Dessine un carré de taille d.
Arguments:
d -- dimension d'un pixel
w -- epaisseur de ligne (1)
pen -- couleur de ligne (black)
fill -- couleur de remplissage (None)
pixelart(image, palette, d=20, w=1, pen='black')
Dessine une image avec des pixels.
Arguments:
image -- tableau 2D avec les indices des couleurs
palette -- table contenant les couleurs
d -- dimension d'un pixel (20)
w -- épaisseur de ligne (1)
pen -- couleur de ligne ('black')
16.4. Ligne polygonale¶
Une fonction puissante peut être très compacte, si bien réfléchie.
La fonction polyline()
comporte 11 paramètres, pourtant la définition de la fonctions contient seulement 28 lignes de code.