Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Décorateurs
Les décorateurs vous permettent de faire des modifications simples aux objets appelables comme fonctions, méthodes, ou classes. Nous allons nous concentrer sur les fonctions pour ce tutoriel. La syntaxe
est équivalente à :
Comme vous l'avez peut-être vu, un décorateur est juste une autre fonction qui prend une fonction et en retourne une. Par exemple, vous pourriez faire ceci :
Cela ferait qu'une fonction se répète deux fois.
Vous pouvez aussi faire en sorte de changer la sortie
changer l'entrée
et faire des vérifications.
Disons que vous voulez multiplier la sortie par une quantité variable. Vous pourriez définir le décorateur et l'utiliser comme suit :
Vous pouvez faire ce que vous voulez avec l'ancienne fonction, même l'ignorer complètement ! Les décorateurs avancés peuvent également manipuler la chaîne de documentation et le nombre d'arguments. Pour des décorateurs astucieux, allez sur http://wiki.python.org/moin/PythonDecoratorLibrary.
Exercice
Créez une fabrique de décorateurs qui retourne un décorateur qui décore des fonctions avec un argument. La fabrique doit prendre un argument, un type, puis retourner un décorateur qui doit vérifier si l'entrée est du bon type. Si ce n'est pas le cas, elle doit imprimer("Mauvais type") (En réalité, elle devrait lever une erreur, mais la levée d'erreur n'est pas dans ce tutoriel). Regardez le code du tutoriel et la sortie attendue pour voir ce qu'il en est si vous êtes confus (je sais que je le serais). Utiliser isinstance(object, type_of_object) ou type(object) pourrait aider.
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!
