Tag Archives : decorator


Un décorateur pour accepter les callbacks en Python

Un des événements auxquels on veut réagir le plus souvent, c’est l’appel d’une fonction, donc en gros être capable de fournir un callback quand on fonction est appelée. On peut bien entendu coder la logique du callback dans chaque fonction et méthode que l’on met en œuvre, mais avec un peu d’astuce, on peu trouver une solution générique qui va couvrir Pareto des besoins.

Photo d'un petit serpent qui tient au creux de la main

Batbelt, la lib des petits outils Python qui vont bien

A force de coder plein de projets, il y a des opérations qui reviennent très souvent. Ces traitements sont petits et complètement sans relation, difficile d’en faire quelque chose. J’ai tout de même finit par en faire un lib, batbelt, qui au final n’est qu’une grosse collections de snippets que j’utilise régulièrement.

Photo d'une voiture à la peinture réfléchissante

Schéma détaillant le phénomène de l'érection masculine

Le pattern observer en utilisant des décorateurs

Nous avons vu précédemment que les décorateurs permettaient d’exécuter du code avant et après une fonction, sans modifier la fonction. La plupart du temps on retourne ainsi une nouvelle fonction embarquant un nouveau code.

Mais il existe d’autres usages pour les décorateurs, et notamment un qui est au cœur du fonctionnement de django-quicky: l’abonnement.


Les context managers et le mot clé with en Python

Le mot clé with est utilisé comme dans aucun autre langage en Python. Au premier abord mystérieux, il agit en fait comme les décorateurs en permettant d’exécuter du code automatiquement avant et après un autre code. Mais à l’image des décorateurs, tout ce qu’il fait pourrait être écrit à la main sans utiliser le mot clé with. Utiliser with est une question de style.

Photo d'une bouteille de shampoing deux en un pour animal de compagnie