2.18. Utiliser les modules

Un module est un ensemble de code Python – fonctions, classes, constantes – empaqueté afin de pouvoir être réutilisé dans de nombreux scripts. Python est livré avec une bibliothèque standard qui en regorge, et le micrologiciel OpenMV en ajoute d’autres pour dialoguer avec la caméra. On accède à un module avec import.

2.18.1. import

La forme la plus directe importe le module entier sous son propre nom :

import math

print(math.sqrt(2))

Sortie

1.4142135623730951

Après l”import, chaque nom défini par math est accessible sous la forme math.<name>. Le nom du module provient de son nom de fichier (sans .py) ; le préfixe d’espace de noms empêche deux modules ayant une fonction du même nom d’entrer en conflit.

2.18.2. from … import

Pour importer des noms spécifiques directement dans la portée courante, utilisez from :

from math import sqrt, pi

print(sqrt(2), pi)

Sortie

1.4142135623730951 3.141592653589793

Il n’y a plus de préfixe d’espace de noms. C’est pratique pour les noms beaucoup utilisés, mais un import from qui amène de nombreux noms rend plus difficile de savoir d’où vient chaque nom. Un simple import math est généralement plus clair dans les scripts de grande taille.

La forme étoilée from math import * importe tout ce que le module exporte. Évitez-la – elle pollue l’espace de noms et perturbe l’autocomplétion de l’IDE.

2.18.3. Aliasing avec as

Les noms de modules longs peuvent être raccourcis avec as :

import json as j

j.dumps({"ok": True})

La même astuce fonctionne sur les noms individuels importés avec from :

from math import sqrt as root

root(9)              # 3.0

Pour du code Python général, n’utilisez un alias que lorsque le nom d’origine est réellement long ou entre en conflit avec autre chose déjà présent dans la portée.

2.18.4. Modules disponibles

La référence de la bibliothèque répertorie tous les modules livrés sur la caméra – la bibliothèque standard MicroPython et les modules spécifiques à OpenMV qui pilotent le capteur d’image, exécutent la vision industrielle et contrôlent le matériel embarqué. Ils utilisent tous le même mécanisme import montré ci-dessus.