Chapitre 9. Décorateurs et fermetures
Cet ouvrage a été traduit à l'aide de l'IA. Tes réactions et tes commentaires sont les bienvenus : translation-feedback@oreilly.com
Le choix du nom "décorateur" pour cette fonctionnalité a suscité un certain nombre de plaintes. La principale est que le nom n'est pas cohérent avec l'utilisation qui en est faite dans le livre du GoF.1 Le nom de décorateur doit probablement plus à son utilisation dans le domaine de la compilation - un arbre syntaxique est parcouru et annoté.
PEP 318 - Décorateurs pour les fonctions et les méthodes
Les décorateurs de fonctions nous permettent de "marquer" les fonctions dans le code source afin d'améliorer leur comportement d'une manière ou d'une autre. C'est un outil puissant, mais pour le maîtriser, il faut comprendre les fermetures, c'est-à-dire ce que nous obtenons lorsque les fonctions capturent des variables définies à l'extérieur de leur corps.
Le mot-clé réservé le plus obscur de Python est nonlocal, introduit dans Python 3.0. Tu peux avoir une vie rentable en tant que programmeur Python sans jamais l'utiliser si tu adhères à un régime strict d'orientation objet centrée sur les classes. Cependant, si tu veux mettre en œuvre tes propres décorateurs de fonctions, tu dois comprendre les fermetures, et c'est alors que la nécessité de nonlocal devient évidente.
Outre leur application dans les décorateurs, les fermetures sont également essentielles pour tout type de programmation utilisant des rappels, et pour ...