Aller au contenu

Zen de Python

Un article de Wikipédia, l'encyclopédie libre.
Le "Zen of Python" (en anglais) vu dans un terminal

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.

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]
  1. « Zen de Python », sur Documentation de Python,
  2. « "The Python Way" », Mail.python.org (consulté le )
  3. a et b Tim Peters, « PEP20 -- The Zen of Python »,
  4. Bob Cordeau & Laurent Pointal, « Une introduction à Python 3, version 1.618c »,
  5. « Un point sur les variables et espaces de noms », sur www.normalesup.org (consulté le )

Liens externes

[modifier | modifier le code]