mdk.fr/content/pages/python-avancé.md

63 lines
2.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Lang: fr
Slug: python-avance
Title: Python avancé
Cest la seconde de mes deux formations Python. Alors que la
[formation *initiation*]({filename}/pages/python-initiation.md)
enseigne lutilisation des classes et bibliothèques pour créer des
programmes simples, la formation *Python avancé*, de lautre 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 lobjectif de produire un code *lisible*, *maintenable*, et
*testé* sur tout type de projet.
Laccent 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 dune bibliothèque et dun lutilisant.
- Test et documentation dune bibliothèque packagée.
## Prérequis
Le pré-requis de ce module est davoir suivi, ou davoir un niveau
équivalent, à la formation [Python
*initiation*]({filename}/pages/python-initiation.md), cest-à-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 dité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 lIEEE 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.
- Lopérateur *walrus* (`:=`).
- Lencodage des chaînes de caractères.
- Le packaging (`pyproject.toml`, `python -m build`, `twine`, …).
- Lasynchrone 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.