Je suis un codeur Python assez fort, mais trop de mon style est un peu hasardeux, et je suis sûr qu'il existe plus de solutions Pythonic à de nombreux problèmes que ceux que je viens avec. Quels PEP sont essentiels pour tout Pythonista bien versé à lire?Quels PEP doivent être lus?
Répondre
Définitivement PEP 8, un guide de style pour Python.
Utilisez une dose lourde de bon sens en le lisant. Ignorer la section sur "79 caractères" entièrement; il est braindamaged et conduit au code laid, difficile à lire pour aucun avantage du monde réel (ceci a été écrit en 2001 et les systèmes de développement sains n'étaient pas 80x25 même alors). Les horreurs de l'exemple "Rectangle" montrent le problème très clairement. –
En dépit de mon écran de 22 ", toutes mes fenêtres éditeur/terminal sont fixées à 80 caractères et j'essaie d'écrire le code en conséquence (mais, comme le dit Terry Pratchett, les règles doivent vous faire réfléchir avant de les casser.) – bayer
+ 1 pour le PEP 8. Je fais de mon mieux pour le garder à 80. – fengshaun
J'ai trouvé que la lecture de ceux qui ont été refusés peut donner un bon aperçu de ce qu'est Pythonic et de ce qui ne l'est pas. C'était il y a quelque temps donc je n'ai pas d'exemples spécifiques.
Il est maintenant rétrospectif, mais toujours intéressant: je pense que Things that will Not Change in Python 3000 est une bonne lecture, avec beaucoup de liens vers les discussions qui ont précédé les décisions.
également pep 0257 convention docstring
Bien que Python est incroyablement intuitif, beaucoup de gens ne comprennent pas sa philosophie.
Pep 20: Le Zen de Python
- Belle est mieux que laid.
- Explicit est mieux que implicite.
- Simple est mieux que complexe.
- Complexe est mieux que compliqué.
- Le plan est meilleur que le plan imbriqué.
- Une image clairsemée est meilleure que dense.
- La lisibilité compte.
- Les cas spéciaux ne sont pas assez spéciaux pour enfreindre les règles.
- Bien que la praticité bat la pureté.
- Les erreurs ne doivent jamais passer en mode silencieux.
- À moins d'être explicitement mis au silence.
- Face à l'ambiguïté, refusez la tentation de deviner.
- Il devrait y avoir une - et de préférence une seule - façon évidente de faire .
- Bien que cette façon ne soit pas évidente au premier abord, sauf si vous êtes néerlandais.
- Maintenant c'est mieux que jamais.
- Bien que jamais est souvent mieux que droite maintenant.
- Si la mise en œuvre est difficile à expliquer, c'est une mauvaise idée.
- Si la mise en œuvre est facile à expliquer, cela peut être une bonne idée.
- Les espaces de noms sont une excellente idée de klaxon - faisons plus de ceux-là!
Je recommande également 8 et PEPs 257. Je sais que ce dévie légèrement de la question initiale, mais je voudrais souligner que PyCharm (probablement le meilleur IDE Python autour de mon avis) automatiquement vérifie si vous suivez certaines des directives PEP 8 les plus importantes, au cas où quelqu'un serait intéressé ...
est ici un indice de PEP - http://www.python.org/dev/peps/
chaque fois que l'on a le doute sur un sujet, ils peuvent rechercher dans ce
- 1. Quels formats de fichiers vidéo peuvent être lus par QTKit?
- 2. Quels fichiers doivent être inclus sous VSS 6.0
- 3. Quels fichiers ne doivent être que chez Root?
- 4. Quels fichiers .net doivent être exclus du contrôle de source?
- 5. Quels mixups de lettres et de nombres doivent être considérés?
- 6. Les nombres doivent-ils être localisés?
- 7. En utilisant Mercurial, comment puis-je voir quels changements doivent encore être poussés?
- 8. quels caractères doivent être échappés dans les paramètres de chaîne sql
- 9. Quels paramètres doivent être évalués de manière approfondie dans SQL Server?
- 10. Quels fichiers de projet ne doivent pas être vérifiés dans SVN
- 11. Quels caractères doivent être échappés pour empêcher les injections (My) SQL?
- 12. Lors de l'exécution de phpdoc sur un projet CodeIgniter, quels dossiers doivent être inclus?
- 13. Quels fichiers de projet ASP.NET MVC doivent être conservés dans un référentiel?
- 14. Comment Vista décide-t-il quels programmes doivent être fermés lorsque la mémoire est insuffisante?
- 15. Quels champs doivent être inclus dans une table de base de données pour l'authentification de l'utilisateur?
- 16. Pourquoi les tables doivent-elles être réparées?
- 17. Les ensembles d'interopérabilité doivent-ils être signés?
- 18. Quels développeurs Silverlight doivent apprendre à utiliser ArcGIS Silverlight?
- 19. Quel PEP gouverne l'ordre de dict.values ()?
- 20. Quels sont les bogues de Grails que les développeurs doivent contourner?
- 21. En-têtes précompilés MSVC: Quels fichiers doivent # inclure "stdafx.h"?
- 22. PEP 302 Exemple: Nouvelle importation crochets
- 23. Les vues ASP.NET MVC doivent-elles être paramétrées
- 24. Quels fichiers d'un projet VDRS Database Edition GDR R2 doivent être exclus du contrôle de code source?
- 25. Quels types d'exécutables peuvent être décompilés?
- 26. Deux modèles Rails associés doivent être créés en même temps
- 27. Les exceptions doivent-elles être placées dans un paquet séparé?
- 28. Unité/Intégration Tests, à quel point doivent-ils être granulaires?
- 29. Les applications Web mvc doivent-elles être à 3 niveaux?
- 30. Où les plugins tiers Eclipse doivent-ils être stockés?
1 - Grande question. –
http://www.python.org/dev/peps/ – u0b34a0f6ae
devrait être wiki de la communauté – SilentGhost