2.42. Récapitulatif

Vous avez parcouru les parties de Python qui reviennent sans cesse lors de l’écriture de scripts pour l’OpenMV Cam :

  • Les fondamentaux du langage – valeurs et variables, arithmétique et comparaison, chaînes et octets, les quatre collections de base (list, tuple, dict, set), conditions et boucles, définition de fonctions et gestion de leurs arguments et de leur portée, définition de classes et utilisation de l’héritage, levée et gestion des exceptions. Ce sont les briques à partir desquelles toute autre partie de Python est construite.

  • Les éléments structurels – répartir le code entre modules et paquets, importer ce dont vous avez besoin, lire et écrire des fichiers avec with, échanger des données structurées via json, et empaqueter des enregistrements binaires via struct avec gestion de l’endianness et des champs entiers à largeur fixe. Ils apparaissent dès qu’un script dépasse un seul fichier ou doit communiquer avec quelque chose d’extérieur à lui-même.

  • Les parties qui changent de forme sur un environnement d’exécution contraint – pourquoi les flottants MicroPython sont sur 32 bits et comment les comparer de manière fiable, comment le ramasse-miettes distribue et récupère les blocs, pourquoi la fragmentation importe sur un petit tas, et comment la pré-allocation maintient un bon comportement des scripts de longue durée. Les habitudes du bureau induisent parfois en erreur ici ; ce contenu vous donne le bon modèle mental pour du code qui vit sur l’appareil.

  • Les outils d’introspection et de code dynamiqueid(), hash(), isinstance(), issubclass(), callable(), globals(), locals() pour observer les valeurs et l’environnement ; eval() / exec() / compile() pour les rares cas où produire du code à l’exécution est la bonne réponse. La plupart des scripts n’y touchent jamais, mais savoir qu’ils existent (et quand ne pas y recourir) fait partie de la lecture du Python des autres.

  • La correspondance de motifs sur du texte – le module re pour les chaînes dont vous pouvez décrire la forme mais que vous ne pouvez pas énumérer. Classes de caractères, quantificateurs, groupes de capture, ancres et le compromis gourmand contre paresseux, ainsi que les points précis où le sous-ensemble de MicroPython reste en deçà de CPython. Recourez-y lorsque str.find ou str.split atteint ses limites.

  • Des conteneurs au-delà des types intégréscollections.namedtuple() pour des enregistrements typés, collections.deque pour des tampons circulaires bornés et des fenêtres glissantes, collections.OrderedDict lorsque l’ordre d’insertion fait partie de l’égalité, et heapq pour les questions « quel est le plus petit » ou « quel est le plus urgent » bâties sur une simple liste. Chacun comble une lacune laissée par les quatre types de conteneurs de base.

  • Les outils du flux de travail quotidien – les compréhensions pour construire des collections à partir de collections existantes, les générateurs et le protocole d’itération pour traiter les données de manière paresseuse, les décorateurs et les gestionnaires de contexte pour encapsuler les motifs courants d’acquisition/libération et d’avant/après, et les habitudes de débogage (lire les traces d’appels, repr(), dir(), help(), le module logging) qui transforment un script cassé en un script réparé.

2.42.1. Utiliser ce guide plus tard

Considérez ce guide comme un matériel de référence, et non comme une lecture en une seule passe. Les chapitres sont volontairement courts ; y revenir pour se rafraîchir la mémoire sur le découpage, les gestionnaires de contexte ou les compréhensions correspond à l’usage prévu. Marquez la section que vous consultez le plus.

Si quelque chose dans la documentation de la caméra fait plus tard référence à un concept Python que vous ne reconnaissez pas – par exemple, « ceci renvoie un gestionnaire de contexte » ou « itérez sur le résultat » – la page correspondante du guide est l’endroit où commencer.

2.42.2. Pour aller plus loin

Le contrôle matériel de base s’appuie directement sur le Python que vous connaissez désormais. Là où le guide vivait dans la mémoire, le contrôle matériel vit dans le monde physique – des tensions sur des broches, des impulsions sur des fils, des octets cadencés sur des bus vers d’autres puces. La boîte à outils se déplace vers le module machine et une fine couche d’électronique. Tout ce qui vient du guide vous accompagne ; vous ne réapprendrez pas def ni with ni en quoi bytearray diffère de bytes.

Lorsque vous rencontrerez une fonctionnalité Python qui vous semble peu familière dans le contenu sur le matériel, ce guide est l’endroit où revenir.