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
Decoratori
Decoratoarele îți permit să faci modificări simple obiectelor apelabile, cum ar fi funcții, metode sau clase. Ne vom ocupa de funcții în acest tutorial. Sintaxa
Este echivalentă cu:
După cum ai văzut, un decorator este doar o altă funcție care ia o funcție și returnează una. De exemplu, ai putea face acest lucru:
Aceasta ar face ca o funcție să se repete de două ori.
Poți de asemenea să îi schimbi ieșirea
schimbă intrarea
și face verificări.
Să presupunem că vrei să multiplici ieșirea cu o cantitate variabilă. Ai putea defini decoratorul și să-l folosești astfel:
Poți face orice vrei cu funcția veche, chiar să o ignori complet! Decoratorii avansați pot, de asemenea, să manipuleze stringul de documentație și numărul de argumente. Pentru niște decoratori deosebiți, vizitează http://wiki.python.org/moin/PythonDecoratorLibrary.
Exercițiu
Fă o fabrică de decoratori care returnează un decorator care decorează funcțiile cu un singur argument. Fabrica ar trebui să ia un singur argument, un tip, și apoi să returneze un decorator care să facă ca funcția să verifice dacă inputul este de tipul corect. Dacă este greșit, ar trebui să printeze("Bad Type") (În realitate, ar trebui să genereze o eroare, dar generarea de erori nu este în acest tutorial). Uită-te la codul tutorialului și la ieșirea așteptată pentru a vedea ce este dacă ești confuz (știu că aș fi). Utilizarea isinstance(object, type_of_object) sau type(object) ar putea ajuta.
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!
