Lorsqu’on fait du Machine Learning en Python, on n’a pas nécessairement besoin de toutes les caractéristiques de ce langage: scikit-learn, numpy et pandas sont très bien développées et ne nécessitent pas beaucoup plus de connaissances que des bases en Programmation Orientée Objet et un peu de méthode.
Toutefois le travail du Data Scientist consiste parfois à créer des APIs pour accéder à un modèle ou à des données: pour nous, cette responsabilité échoit au Data Engineer mais dans beaucoup de structures, c’est la responsabilité du Data Scientist. Par exemple, une entreprise comme Amazon crée toutes ses features sous forme d’API. Il est donc essentiel de se familiariser aux APIs en plus de connaître le Machine Learning, le Deep Learning, la Data Visualization et les différentes techniques statistiques d’exploration des données.
Pour ne pas se départir de son langage préféré, le Data Scientist va alors naturellement se tourner vers Flask. C’est la technologie que nous avons choisi de mettre en avant dans notre formation de Data Engineering.
Flask c’est bien mais...
Flask, une fois qu’on a compris la syntaxe, est en effet très simple à utiliser. Mais la première fois qu’on l’utilise, on se retrouve confronté à ce genre de code:
Ce @app.route tout droit sorti des enfers qui vient remettre en question votre compréhension globale de Python…
Les décorateurs

Ce @ est utilisé en Python pour introduire un décorateur (et non, il n’est pas simplement là pour faire joli…). Il se place juste avant une fonction et permet d’envelopper (wrap) la fonction dans une autre fonction appelée le wrapper.
Ainsi si je veux construire une fonction qui prend en mesure et affiche le temps pris par une fonction pour tourner, je peux l’implémenter de la manière suivante:
On remarquera que cette fonction prend en argument une fonction (function comme son nom l’indique), qu’à l’intérieur elle définit une nouvelle fonction (timed_function) et qu’elle retourne cette nouvelle fonction.
Ainsi lorsque que j’utilise un décorateur, je pourrais voir le temps s’afficher à la fin de son exécution.
UNE CARRIÈRE DANS LA DATA VOUS TEND LES BRAS !
Une reconversion dans le big data vous intéresse, mais vous ne savez pas par où commencer ? Découvrez nos formations en Data Science.
Participer à votre première formation data gratuitement !
Assistez aux cours dispensés en live par nos formateurs pour démarrer sur Python, SQL, Power BI…
UNE CARRIÈRE DANS LA DATA VOUS TEND LES BRAS !
Une reconversion dans le big data vous intéresse, mais vous ne savez pas par où commencer ?
Participer à votre première formation data gratuitement !
Les décorateurs sont très utiles pour vérifier le type des données, pour afficher des informations sur le fonctionnement de la fonction sans pour autant avoir à le recoder dans chaque fonction. C’est très utilisé dans Flask évidemment mais aussi dans beaucoup des codes sources de nos librairies préférées: un exemple, un autre, et un troisième pour la route.
Aller un tout petit peu plus loin …
Bon quand moi j’ai vu ça, je me suis posé quelques questions (et pas seulement est-ce que c’est bien utile).
Peut-on passer des arguments au décorateur et non à la fonction décorée? Oui mais la syntaxe est un peu plus complexe:
Est-ce qu’on peut enchaîner les décorateurs? Sans problème:
Est-ce qu’on peut décorer des méthodes? Oui
Est-ce qu’on peut décorer des classes ? Oui

Les décorateurs sont des outils assez intéressants. Ils paraissent surprenant au premier abord mais permettent de se simplifier le travail une fois qu’on a compris comment ils fonctionnaient. Vous ne les rencontrerez pas tous les jours mais si jamais ça arrive, alors vous aurez été préparés.
Cet article vous a plu ? N’hésitez pas à vous abonner à notre newsletter pour recevoir des astuces data que vous ne trouverez nulle part ailleurs !