Zen de Python
![](https://cdn.statically.io/img/upload.wikimedia.org/wikipedia/commons/thumb/f/f4/Zen_Of_Python.png/300px-Zen_Of_Python.png)
Le Zen de Python est un ensemble de 19 principes qui influencent la conception du langage de programmation Python, et sont utiles pour comprendre et utiliser le langage[1].
Écrit et publié sur la liste de discussion de Python en par Tim Peters (en)[2], le Zen de Python a été ensuite publié comme le Python Enhancement Proposal (PEP) numéro 20[3]. Il est aussi inclus comme "Easter egg" dans la distribution de l'interpréteur Python, et apparait quand on tape la commande import this
[3].
Le message initial sur la liste de discussion, comme les publications ultérieures, mentionnent non pas 19, mais 20 principes, "En en comptant un (...) à rajouter par Guido", mais ce vingtième principe n'a jamais été publié, et n'existe probablement pas. Le texte inclut aussi une référence implicite à Guido Van Rossum (dans la strophe "à moins d'être Néerlandais").
Le texte en anglais a été mis dans le domaine public.
Texte
[modifier | modifier le code]Une traduction en français a été diffusée sous une licence Creative Commons BY-NC-SA dans un cours de programmation Python[4],
Préfère :
la beauté à la laideur,
l'explicite à l'implicite,
le simple au complexe
et le complexe au compliqué,
le déroulé à l'imbriqué,
l'aéré au compact.
Prends en compte la lisibilité.
Les cas particuliers ne le sont jamais assez pour violer les règles.
Mais, à la pureté, privilégie l'aspect pratique.
Ne passe pas les erreurs sous silence,
... ou bâillonne-les explicitement.
Face à l'ambiguïté, à deviner ne te laisse pas aller.
Sache qu'il ne devrait [y] avoir qu'une et une seule façon de procéder,
même si, de prime abord, elle n'est pas évidente, à moins d'être Néerlandais.
Mieux vaut maintenant que jamais.
Cependant jamais est souvent mieux qu'immédiatement.
Si l'implémentation s'explique difficilement, c'est une mauvaise idée.
Si l'implémentation s'explique aisément, c'est peut-être une bonne idée.
Les espaces de nommage ! Sacrée bonne idée ! Faisons plus de trucs comme ça.
Les « espaces de nommage » mentionnés dans la dernière strophe désignent les espaces de noms (namespaces en anglais) ; ceux-ci assignent un ensemble d'objets (entiers, réels, chaînes de caractères, etc.) à un ensemble de termes d'un répertoire[5].
Références
[modifier | modifier le code]- « Zen de Python », sur Documentation de Python,
- « "The Python Way" », Mail.python.org (consulté le )
- Tim Peters, « PEP20 -- The Zen of Python »,
- Bob Cordeau & Laurent Pointal, « Une introduction à Python 3, version 1.618c »,
- « Un point sur les variables et espaces de noms », sur www.normalesup.org (consulté le )