PEP

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Sigle Python Enhancement Proposal
PEP 20 « The Zen of Python » — philosophie
PEP 8 Conventions de style de code
Voir aussi Python · Rappel python

Un PEP (Python Enhancement Proposal) est un document décrivant une évolution du langage Python ou une convention de la communauté. Deux PEP sont particulièrement structurants : la PEP 20 (philosophie) et la PEP 8 (style de code).

PEP 20 — une philosophie

Liste d'aphorismes (« The Zen of Python ») :

  • le beau est préférable au laid
  • l'explicite est préférable à l'implicite
  • le simple est préférable au complexe
  • le complexe est préférable au compliqué
  • le plat est préférable à l'imbriqué
  • l'aéré est préférable au compact
  • la lisibilité compte
  • les cas particuliers ne sont pas suffisamment particuliers pour casser la règle
  • l'aspect pratique ne doit pas prendre le pas sur la pureté
  • les erreurs ne devraient jamais passer silencieusement
  • à moins qu'elles n'aient été explicitement réduites au silence
  • en cas d'ambiguïté, résister à la tentation de deviner
  • il devrait exister une (et de préférence une seule) manière évidente de procéder
  • même si cette manière n'est pas forcément évidente au premier abord (à moins que vous ne soyez Néerlandais)
  • maintenant est préférable à jamais
  • mais jamais est parfois préférable à immédiatement
  • si la mise en œuvre est difficile à expliquer, c'est une mauvaise idée
  • si la mise en œuvre est facile à expliquer, ce peut être une bonne idée
  • les espaces de noms sont une très bonne idée (faisons-en plus !)

PEP 8 — des conventions précises

Forme du code

  • utiliser 4 espaces par niveau d'indentation
  • ne jamais mélanger tabulations et espaces dans un même code
  • limiter les lignes à 79 caractères ; utiliser le caractère \ pour couper une ligne
  • séparer par deux sauts de ligne une définition de fonction ou de classe
  • séparer par une seule ligne les définitions de méthodes au sein d'une classe
  • l'encodage UTF-8 est préférable à partir de Python 3.0

Directives d'importation

  • une ligne par bibliothèque importée
  • toujours en en-tête du fichier
  • diviser les imports en 3 groupes :
    1. bibliothèque standard
    2. bibliothèques tierces
    3. modules du projet

Espaces dans les expressions

Oui :

spam(ham[1], {egg: 2})
if x == 4: print x, y; x, y = y, x
def fonction(parametre=5): ...
fonction(parametre=32)

Non :

spam( ham[ 1 ], { egg: 2 } )
if x == 4 : print x , y ; x , y = y , x
def fonction(parametre = 5): ...
fonction(parametre = 32)

Commentaires

  • les commentaires doivent être des phrases complètes

Conventions de nommage

  • éviter les l, O, I qui peuvent être confondus
  • les noms de packages doivent être des noms courts
  • les noms de classes s'écrivent en CapWords (ex : MaClasse)
  • les noms de variables et de fonctions en minuscules avec des _ (ex : nom_de_fonction)
  • les constantes en majuscules (ex : MA_CONSTANTE)

Conventions de programmation

Oui :

if objet is None:
if isinstance(variable, str):
if booleen:
if not booleen:

Non :

if objet == None:
if type(variable) == str:
if booleen == True:
if booleen is True:

Voir aussi