Aller au contenu

Style (PEP 8)#

courant

Indentation et longueur de ligne#

  • 4 espaces par niveau d'indentation, jamais de tabulations.
  • 79-99 caractères par ligne selon la convention du projet (souvent 88 avec black).

Nommage#

Élément Convention
Variable, fonction, module snake_case
Classe, exception PascalCase
Constante MAJUSCULES_SNAKE
Privé (interne) préfixe _nom

Espacement#

# Bon
x = 1
f(a, b, c=3)
liste[1:3]

# À éviter
x=1
f(a , b,c = 3)
liste[1 : 3]

Imports#

# Ordre : stdlib, puis tiers, puis local — un import par ligne, en haut du fichier
import os
import sys

import requests

from mon_package import utils

Comparaisons#

if x is None: ...          # pas x == None
if not liste: ...            # pas len(liste) == 0
if isinstance(x, str): ...     # pas type(x) == str

Docstrings et commentaires#

  • Docstring ("""...""") pour documenter modules, classes, fonctions publiques.
  • Commentaire (#) pour expliquer un choix non évident, pas pour reformuler le code.
# Mauvais : redondant avec le code
x += 1  # incrémente x

# Utile : explique le "pourquoi"
x += 1  # compense l'index 0-based de l'API externe

Environnement virtuel (venv)#

Pour isoler les bibliothèques d'un projet sans toucher au Python du système (module natif standard) :

# 1. Créer l'environnement virtuel dans le dossier .venv
python -m venv .venv

# 2. L'activer :
# Sous Linux / macOS :
source .venv/bin/activate
# Sous Windows (PowerShell) :
.venv\Scripts\Activate.ps1

# 3. Installer ou geler les dépendances du projet :
pip install -r requirements.txt
pip freeze > requirements.txt

# 4. Désactiver quand le travail est terminé :
deactivate

Outils de vérification automatique#

python -m tabnanny mon_module.py   # (standard) détecte les indentations incohérentes

Hors bibliothèque standard

black (reformatage automatique) et ruff (lint) ne sont pas fournis avec Python. À installer dans un environnement virtuel si le projet le prévoit :

pip install black ruff
black mon_module.py
ruff check mon_module.py