DRY, de la fonction au décorateur
Par Florian Strzelecki - 23:38 - 12.07.2017
Prenons un exemple de code python simpliste :
def more(number, i):
"""Add ``number`` and ``i``"""
return number + i
print(more(5, 2))
Sans grande surprise, ceci affiche dans le terminal le nombre "7". Maintenant, mettons que j'ai envie d'afficher du texte avant de faire l'addition... mais seulement de temps en temps ?
La version simpliste, c'est d'écrire une autre fonction, comme ceci :
def more_verbose(number, i):
"""Print a sentence and return ``more(number, i)``"""
print('Calling function `more`')
return more(number, i)
print(more_verbose(5, 2))
Ce qui affiche :
Calling function `more`
7
Et maintenant, qu'est-ce qui se passerait si je voulais faire la même chose avec une autre fonction ?