Lang: fr Slug: python-avance Title: Python avancé C’est la seconde de mes deux formations Python. Alors que la [formation *initiation*]({filename}/pages/python-initiation.md) enseigne l’utilisation des classes et bibliothèques pour créer des programmes simples, la formation *Python avancé*, de l’autre côté du miroir, enseigne la création de ces classes et bibliothèques pour créer des bibliothèques réutilisables dans des programmes arbitrairement complexes. ## Objectifs À la fin de cette seconde formation les stagiaires maîtrisent Python dans l’objectif de produire un code *lisible*, *maintenable*, et *testé* sur tout type de projet. L’accent est mis sur le partage et la réutilisation du code : - Création de bibliothèque (modules, paquets). - Packaging et distribution de ces bibliothèques. - Gestion des dépendances d’une bibliothèque et d’un l’utilisant. - Test et documentation d’une bibliothèque packagée. ## Prérequis Le pré-requis de ce module est d’avoir suivi, ou d’avoir un niveau équivalent, à la formation [Python *initiation*]({filename}/pages/python-initiation.md), c’est-à-dire : être capable de lire et de modifier du Python, être capable de résoudre des problèmes simples en Python. ## Le contenu - Les différents protocoles de Python (le protocole d’itération, « les dunder », …). - Les classes et leurs instances (où on parle de la MRO, de `super()`, …). - Le protocole descripteur. - Le *garbage collector*. - Les *floats* et l’IEEE 754. - Créer et gérer les exceptions, le `else` et le `finally` du `try`. - Les gestionnaires de contexte. - Les décorateurs. - Les listes en compréhension. - L’opérateur *walrus* (`:=`). - L’encodage des chaînes de caractères. - Le packaging (`pyproject.toml`, `python -m build`, `twine`, …). - L’asynchrone avec `async` et `await`. ## Durée Cette formation se déroule idéalement en cinq jours, mais elle est réalisable en 3 jours. ## Contact Pour en savoir plus, contactez-moi par email : julien at palard.fr.