← Retour au blog
tech 13 août 2026

Les constantes pré-déclarées en Python : un mystère à élucider

Python introduit une singularité avec ses constantes pré-déclarées. Découvre comment ces éléments clés diffèrent et pourquoi ils sont essentiels pour les développeurs.

Article inspiré de la source originale
python's pre-declared constants are kinda weird ↗ sebsite.pw

Introduction

Python, ce langage de programmation souvent plébiscité pour sa simplicité et sa lisibilité, cache quelques surprises. Parmi elles, ses constantes pré-déclarées. Si tu es développeur Python, tu as probablement déjà utilisé des constantes comme True, False, et None. Mais sais-tu vraiment comment elles fonctionnent et pourquoi elles sont parfois si différentes ? Examinons ces éléments en profondeur pour mieux comprendre leur rôle et leur comportement.

Les constantes de base

True, False et None

Commençons par les plus connues : True, False et None. Ce sont des mots-clés en Python, ce qui signifie qu'ils ne peuvent pas être utilisés comme noms de variables. Ils sont traités comme des tokens lexicaux, un choix unique en Python qui les distingue d'autres identificateurs. Par exemple, essayer d'accéder à x.True lèvera une erreur de syntaxe. Cette particularité est due à leur résolution au niveau du lexer plutôt que par le moteur de résolution de noms habituel.

__debug__

Passons à __debug__, une constante légèrement différente. Bien qu'elle soit généralement égale à True, elle peut être False si Python est exécuté avec l'option -O, qui active le mode optimisé. Contrairement aux trois précédentes, __debug__ est un identifiant normal, mais il a la particularité d'être inassignable, ce qui est unique dans le langage. Tenter d'assigner une valeur à __debug__ lèvera une erreur de syntaxe, tandis que chercher à l'attribuer en tant qu'attribut d'un objet renverra une AttributeError.

Les constantes spécialisées

Ellipsis et NotImplemented

Les deux autres constantes, Ellipsis et NotImplemented, sont souvent moins comprises. Ellipsis est utilisé principalement dans des contextes de slicing avancé, souvent dans des bibliothèques telles que NumPy. NotImplemented, quant à lui, sert à indiquer qu'une opération binaire (comme l'addition) n'est pas prise en charge pour les types d'objets donnés.

Pourquoi ces différences ?

La question se pose : pourquoi ces constantes se comportent-elles différemment ? La réponse réside probablement dans des choix de conception visant à optimiser la performance et la clarté syntaxique. En particulier, l'utilisation de mots-clés pour True, False et None empêche toute modification accidentelle, garantissant ainsi leur intégrité au sein du code.

L'impact sur les développeurs

Comprendre ces différences est crucial pour les développeurs Python, surtout ceux impliqués dans le développement de bibliothèques ou d'outils où la gestion des constantes est critique. Par exemple, savoir que __debug__ ne peut pas être réassigné peut aider à éviter des erreurs subtiles lors de l'optimisation du code.

Conclusion

En somme, les constantes pré-déclarées de Python, bien qu'apparemment déroutantes, jouent un rôle essentiel dans le langage. Elles assurent la stabilité et la prévisibilité du code, deux qualités essentielles pour le développement de logiciels de qualité. Comprendre leur fonctionnement peut améliorer ta maîtrise du langage et te permettre de créer des applications plus robustes.

Discutons de ton projet en 15 minutes.

Python constants programming keywords development
Newsletter Deepthix · 100% IA · chaque lundi 8h

Un agent IA lit la tech à ta place.

Notre agent IA scanne ~200 sources par semaine et te livre les meilleurs articles le lundi 8h. Gratuit. 1 clic pour se désinscrire.

Voir la page newsletter →

Tu veux automatiser tes opérations ?

Discutons de ton projet en 15 minutes.

Réserver un call