# 3. Constantes natives

Un petit nombre de constantes existent dans le namespace natif. Elles sont :

`False`

  La valeur fausse du type `bool`. Les assignations à `False` ne sont pas autorisées et lèvent une `SyntaxError`.

`True`

  La valeur vraie du type `bool`. Les assignations à `True` ne sont pas autorisées et lèvent une `SyntaxError`.

`None`

  `None` est l’unique valeur du type `NoneType`. Elle est utilisée fréquemment pour représenter l’absence de valeur, comme lorsque des arguments par défaut ne sont pas passés à une fonction. Les assignations à `None` ne sont pas autorisées et lèvent une `SyntaxError`.

`NotImplemented`

  Valeur spéciale qui devrait être renvoyée par les méthodes magiques à deux opérandes (e.g. `__eq__()`, `__lt__()`, `__add__()`, `__rsub__()`, etc.) pour indiquer que l’opération n’est pas implémentée pour l’autre type ; peut être renvoyé par les méthodes magiques augmentées à deux opérandes (e.g. `__imul__()`, `__iand__()`, etc.) avec le même objectif. Sa valeur booléenne est `True`.

  Note

  Lorsqu’une méthode à deux opérandes renvoie `NotImplemented`, l’interpréteur essaye d’exécuter l’opération réfléchie sur l’autre type (il existe d’autres mécanismes de fallback, en fonction de l’opérateur). Si toutes les tentatives renvoient `NotImplemented`, l’interpréteur lève une exception appropriée. Renvoyer `NotImplemented` à tort donne lieu à un message d’erreur peu clair ou au renvoi de la valeur `NotImplemented` pour le code Python.

  Voir Implémentation des opérations arithmétiques pour des exemples.

  Note

  `NotImplementedError` et `NotImplemented` ne sont pas interchangeables, même s’ils ont un nom et un objectif similaire. Voir `NotImplementedError` pour savoir quand l’utiliser.

`Ellipsis`

  The same as the ellipsis literal « `...` ». Special value used mostly in conjunction with extended slicing syntax for user-defined container data types.

`__debug__`

  Cette constante est vraie si Python n’a pas été démarré avec une option `-O`. Voir aussi l’expression `assert`.

Note

Les noms `None`, `False`, `True` et `__debug__` ne peuvent pas être réassignés (des assignations à ces noms, ou aux noms de leurs attributs, lèvent une `SyntaxError`), donc ils peuvent être considérés comme des « vraies » constantes.

## 3.1. Constantes ajoutées par le module `site`

Le module `site` (qui est importé automatiquement au démarrage, sauf si l’option de ligne de commande `-S` est donnée ajoute un certain nombre de constantes au namespace natif. Elles sont utiles pour l’interpréteur interactif et ne devraient pas être utilisées par des programmes.

`quit`(code=None)
`exit`(code=None)

  Objets qui, lorsqu’ils sont représentés, affichent un message comme « Use quit() or Ctrl-D (i.e. EOF) to exit », et lorsqu’ils sont appelés, lèvent un `SystemExit` avec le code de retour spécifié.

`copyright`
`credits`

  Objets qui, lorsqu’ils sont affichés ou appelés, affichent le copyright ou les crédits, respectivement.

`license`

  Objet qui, lorsqu’il est affiché, affiche un message comme « Type license() to see the full license text », et lorsqu’il est appelé, affiche le texte complet de la licence dans un style paginé (un écran à la fois).