PEP 8 apprendre les bonnes pratiques pour coder en python

La PEP 8 c'est quoi?

PEP 8 (pour Python Extension Proposal) est un ensemble de règles qui permet d'homogéniser le code et d'appliquer de bonnes pratiques. L'exemple le plus connu est la guerre entre les developpeurs à savoir s'il faut indenter son code avec des espaces ou avec des tabulations. La PEP 8 tranche: ce sont les espaces qui gagnent, au nombre de 4. Fin du débat.

C'est une logique très intéressante pour Python qui se veut un langage "qui se lit" plutôt qu'"un langage qui s'écrit". Alors oui cette phrase ne veut rien dire mais écrire un code compréhensible pour une machine est plutôt aisé, mais écrire un code compréhensible par le plus grand nombre de codeurs (de tout niveau) c'est une autre histoire...

La PEP 8 permet d'instaurer des règles, des conventions pour faciliter la lecture du codeur et ainsi le rendre moins stressé et plus productif. L'avantage de la PEP 8 permet d'embellir le code. Alors je ne sais toujours pas si le code est embelli avec la PEP 8 au si le fait d'instaurer des règles ne rend pas le code sans PEP 8 laid. On peut se dire à la lecture d'un script que l'auteur n'a pas repecté ces règles de base et donc n'est pas un bon codeur. Ce n'est pas forcément le cas mais...

Encore des règles à apprendre?

Il n'est pas nécessaire d'apprendre toutes les règles de la PEP 8, je listerai ici les règles les plus intéressantes.

A noter qu'un bon IDE vous assistera dans l'écriture de votre code. Il soulignera les incohérences et vous proposera même de les corriger. Des outils comme Black vous assisteront dans la mise en forme par exemple.

Encodage

Pour python 3: UTF-8 , oui la base. Est-il encore nécessaire de le préciser? Ne jamais utiliser autre chose que de l'utf-8.

L'indentation

L'indentation de votre code doit être de 4 caractères. Plus c'est trop, moins c'est pas assez. Du coté de coffeescript par exemple c'est 2, c'est moche. Honte à eux. Il fallait que ce soit écrit quelque part, voilà c'est fait.

Code layout

79 caractères par ligne, pas plus.

Ecrire en python c'est comme écrire une sorte de poème en alexandrin. Il y a le fond mais également la forme. Si vous êtes perfectionniste, revoyez votre code, même pour un seul catactère de dépassement; cela ne changera rien à l'execution de votre code, cela ne vous fera que perdre du temps,
mais la passion c'est la passion, les règles sont les règles.

Import

Les import sont a déclaré au début du script. Ca semble évident, mais c'est toujours bien de le rappeler. Vous pouvez en ajouter dans une fonction également (si vous ne pouvez pas faire autrement ou pour des raisons exceptionnelles) mais après la docstring. Prévoyez une ligne par import .

Les espaces

Alors les espaces il faut être conci, évitez d'en mettre là on ce n'est pas nécessaire:

name = 'Batman' # oui c'est propre
name='name' #non c'est moche
batmobile ['color'] = 'black' # non
batmobile['color'] = 'black' # oui

Commenter son code en anglais

Il est recommandé de commenter son code en anglais, pour pouvoir le partager au plus grand nombre.

Mais si vous êtes dans un équipe franco-française ou que vous êtes le seul à travailler sur votre projet, il vaut mieux écrire de bons commentaires en français que des mauvais en anglais.


Livres Python & Django: conseils de lecture



Apprendre programmation cours python 3
Django internet web - Documentation débutant et expert
Version anglaise