Je connais @staticmethod, @classmethod, et @property, mais seulement par le biais de la documentation dispersée. Y a-t-il une liste complète des décorateurs de fonctions qui sont construits en Python?Python - Y at-il une liste de décorateurs quelque part?
Répondre
Je ne pense pas. Les décorateurs ne diffèrent pas des fonctions ordinaires, vous les appelez simplement de manière plus fantaisiste.
Pour trouver tous essayer la recherche Built-in functions liste, parce que vous pouvez voir dans Python glossary la syntaxe de décorateur est juste un sucre syntaxique, comme les deux définitions suivantes permettent de créer des fonctions égales (copier cet exemple de glossaire):
def f(...):
...
f = staticmethod(f)
@staticmethod
def f(...):
Ainsi, toute fonction intégrée renvoyant une autre fonction peut être utilisée comme décorateur. La question est: est-il sensé de l'utiliser de cette façon? :-)
functools Le module contient certaines fonctions qui peuvent être utilisées comme décorateurs, mais elles ne sont pas des built-ins que vous avez demandés.
Ils ne sont pas intégrés, mais this library d'exemples de décorateurs si très bien. En tant que Abgan says, la liste de fonctions intégrée est probablement le meilleur endroit pour regarder, bien que les décorateurs puissent également être implémentés en tant que classes, il n'est pas garanti d'être complet.
Il n'existe pas de liste de tous les décorateurs. Il n'y a pas de liste de toutes les fonctions. Il n'y a pas de liste de toutes les classes.
Les décorateurs sont un outil pratique pour définir un aspect commun entre les fonctions, les méthodes ou les classes. Il y a les décorateurs intégrés. De plus, il y a un certain nombre de décorateurs cool et inutiles. De la même manière, il existe un certain nombre de classes cool et inutiles.
Les décorateurs n'ont même pas besoin de retourner une fonction. J'ai déjà utilisé @atexit.register
auparavant.
Eh bien, on retourne la même fonction qui lui est passée dans ce but précis. –
Oh, c'est ça? Je n'ai jamais remarqué. – habnabit
"Les décorateurs ne sont même pas tenus de retourner une fonction" - pour avoir un sens, cependant, ils devraient, puisque '@ decor' est juste du sucre pour' f = decor (f) '- sinon vous perdrez la référence à la fonction que vous décorez. –
- 1. Lucene.Net et Geosearch - est-ce qu'il y a quelque part?
- 2. Variable perdue quelque part?
- 3. décorateurs et méthodes python
- 4. Y a-t-il une classe open source quelque part pour gérer les commentaires des utilisateurs?
- 5. comment ajouter une ligne quelque part au milieu d'une table
- 6. Jeu de données nullable et typé, y a-t-il un générateur quelque part?
- 7. Rendre les erreurs de sortie Firebug quelque part persistantes
- 8. Y a-t-il un analyseur .eml gratuit disponible quelque part?
- 9. Y a-t-il quelque part où je peux rechercher des services Web disponibles?
- 10. Fonction Décorateurs
- 11. Comment bande décorateurs d'une fonction en python
- 12. y at-il un résumé des limitations techniques sur les applications écrites pour les sites de réseautage social quelque part?
- 13. Tests automatiques Valgrind - sont-ils utilisés quelque part?
- 14. constante non initialisée Twitter :: OAuth - Overlooking un besoin quelque part?
- 15. Y a-t-il quelque chose comme getattr() de Python en C#?
- 16. Décorateurs de coûts
- 17. compréhension de la liste python; compresser une liste de listes?
- 18. En Python, comment indexer une liste avec une autre liste?
- 19. filtrer une liste Python par prédicat
- 20. Pour les programmeurs Python, y a-t-il quelque chose d'équivalent au CPAN de Perl?
- 21. Y a-t-il quelque chose comme 'with' de Python en C#?
- 22. Remplit une liste en python
- 23. Segmenter une liste en Python
- 24. Y at-il un moyen de parcourir une sous-section d'une liste en Python
- 25. Python - trier une liste de listes imbriquées
- 26. Comment mettre la date de construction de l'application quelque part dans l'application?
- 27. Y a-t-il des décorateurs/macros/annotations dans AS 3?
- 28. Comment créer une liste de lambdas Python (dans une boucle de compréhension de liste/for)?
- 29. Décorateurs et méthodes virtuelles
- 30. Appeler une fonction avec une liste d'arguments en python
Il n'y a pas une liste officielle, mais ce lien est utile: https://github.com/lord63/awesome-python-decorator – Casebash