Respecter la limite de 80 caractères en python

La limite (conseillée) de 80 caractères

Lorsque j'ai lu partout que les lignes de code Python ne devaient, idéalement, pas dépasser 80 caractères par ligne, je me suis demandé comment on pouvait faire ça proprement. Ici, proprement signifie : "sans donner des noms de variable ou de méthodes de 1 ou 2 caractères".

Python admet tout de même les lignes ne dépassant pas 100 caractères si le projet en cours de développement n'est pas un projet libre, qu'il n'est pas amené à le devenir et que tous ces intervenants acceptent de travailler sur des lignes de 100 caractères. Mais la PEP 8 rappelle que cette limite de 100 caractères est une tolérance et qu'il vaut mieux éviter de l'atteindre.

Après quelques petites recherches, j'en suis arrivé à la conclusion qu'on pouvait considérer qu'on pouvait utiliser 3 moyens différents pour avoir un code respectant cette limite. Il faut utiliser ces moyens du premier au dernier (c'est à dire que si le premier moyen fonctionne bien il ne faut pas utiliser le deuxième ou les autres) :

1 - Refactoriser le code (exemple Django avec les queryset chainable) :

Transformez
value_of_object = Produit.objects.filter(prix=10, vendeur="Michel", boutique="Paris").order_by('-vendus')
en
value_of_object = Produit.objects.filter(prix=10, solde=True)
value_of_object = value_of_object.filter(boutique="Paris")
value_of_object = value_of_object.order_by('-vendus')

2 - On peut utiliser les parenthèses de cette manière :

print (chaine1 + chaine2 + chaine3 +
chaine 4 + chaine 5)


3 - On peut utiliser le backslash (en dernier recourt):

print chaine1 + chaine 2 + chaine3 + \
chaine4 + chaine5


Malgré ces conseils il faut garder à l'esprit que votre code doit rester clair, si vous décidez de prendre la deuxième solution et que vous finissez par obtenir une boucle très complexe au lieu de 3 boucles propres imbriquées correctement vous avez pris une mauvaise décision (bien qu'un code Pythonique soit le plus plat possible : "Flat is better than nested"). Votre code doit rester clair et facilement compréhensible ! C'est le principal.