En python, utilisez-vous généralement PEP 8 -- Guide de style pour le code Python comme vos normes/directives de codage ? Y a-t-il d'autres normes formalisées que vous préférez ?
Réponses
Trop de publicités?"En Python, utilisez-vous généralement le PEP 8 (Style Guide for Python Code) comme normes de codage ? Y a-t-il d'autres normes formalisées que vous préférez ?"
Comme vous l'avez mentionné, suivez PEP 8 pour le texte principal, et PEP 257 pour les conventions de docstring
Outre les guides de style Python, je vous suggère de consulter les documents suivants :
Je suis le Idiomes et efficacité en Python lignes directrices, par Rob Knight. Je pense qu'elles sont exactement les mêmes que celles du PEP 8, mais qu'elles sont plus synthétiques et basées sur des exemples.
Si vous utilisez wxPython, vous pouvez également consulter le site suivant Guide de style pour le code wxPython de Chris Barker.
Je respecte scrupuleusement le PEP-8.
Il y a trois choses spécifiques que je ne peux pas prendre la peine de changer pour PEP-8.
-
Évitez les espaces blancs superflus à l'intérieur des parenthèses, des crochets ou des accolades.
Suggéré :
spam(ham[1], {eggs: 2})
C'est ce que je fais de toute façon :
spam( ham[ 1 ], { eggs: 2 } )
Pourquoi ? Plus de 30 ans d'habitudes bien ancrées font que les () sont collés contre les noms de fonctions ou (en C) les mots-clés des déclarations. Cela a commencé avec Fortran IV dans les années 70.
-
Utiliser des espaces autour des opérateurs arithmétiques :
Suggéré :
x = x * 2 - 1
C'est ce que je fais de toute façon :
x= x * 2 - 1
Pourquoi ? L'ouvrage de Gries intitulé The Science of Programming (La science de la programmation) propose cette solution pour mettre en évidence le lien entre l'affectation et la variable dont l'état est modifié.
Il ne fonctionne pas bien pour l'assignation multiple ou l'assignation augmentée, pour lesquelles j'utilise beaucoup d'espaces.
-
Pour les noms de fonctions, de méthodes et de variables d'instance
Suggestion : minuscules, les mots étant séparés par des traits de soulignement si nécessaire pour améliorer la lisibilité.
Je le fais de toute façon : camelCase
Pourquoi ? Plus de 20 ans d'habitude de camelCase, depuis Pascal dans les années 80.
A ajouter à de bhadra liste de guides idiomatiques :
Consultez la présentation d'Anthony Baxter sur Programmation efficace en Python (d'après OSON 2005).
Un extrait :
# dict's setdefault method turns this:
if key in dictobj:
dictobj[key].append(val)
else:
dictobj[key] = [val]
# into this:
dictobj.setdefault(key,[]).append(val)