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

   Objet utilisé 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". "None" est la seule instance du type
   "NoneType".

NotImplemented

   Valeur spéciale qui devrait être renvoyée par les méthodes magiques
   à deux opérandes (comme "__eq__()", "__lt__()", "__add__()",
   "__rsub__()", etc.) pour indiquer que l'opération n'est pas
   implémentée pour l'autre type ; peut être renvoyée par les méthodes
   magiques augmentées à deux opérandes (comme "__imul__()",
   "__iand__()", etc.) avec le même objectif. Elle ne doit pas être
   évaluée comme booléen. "NotImplemented" est la seule instance de
   "types.NotImplementedType".

   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.

   Modifié dans la version 3.9: évaluer "NotImplemented" dans un
   contexte booléen est obsolète. Python l'évalue aujourd'hui à "True"
   mais émet un "DeprecationWarning". Il lèvera une "TypeError" dans
   une version ultérieure de Python.

Ellipsis

   Identique au littéral *points de suspension* (""...""). Valeur
   spéciale utilisée principalement de manière conjointe avec la
   syntaxe de découpage (*slicing*) étendu pour les conteneurs
   personnalisés. "Ellipsis" est la seule instance de
   "types.EllipsisType".

__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.


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).
