# Version des API et ABI

CPython révèle son numéro de version dans les macros suivantes. À noter qu'ils correspondent au code de la version compilée avec, pas nécessairement la version utilisée à l'exécution.

Voir Stabilité de l’API C pour une discussion sur la stabilité des API et ABI entre (ou en fonction) de la version.

PY_MAJOR_VERSION

  Le `3` dans `3.4.1a2`.)

PY_MINOR_VERSION

  Le `4` dans `3.4.1a2`.

PY_MICRO_VERSION

  Le `1` dans `3.4.1a2`.)

PY_RELEASE_LEVEL

  The `a` in `3.4.1a2`. This can be `0xA` for alpha, `0xB` for beta, `0xC` for release candidate or `0xF` for final.

PY_RELEASE_SERIAL

  Le `2` dans `3.4.1a2`. Nul pour des versions finales.

PY_VERSION_HEX

  Le numéro de version de Python encodé en un seul entier.

  L'information sur la version sous-jacente peut être trouvée en la traitant comme un nombre sous 32 bits de la manière suivante :

  Octets | Bits (ordre gros-boutiste) | Signification | Valeur pour `3.4.1a2`
  --- | --- | --- | ---
  1 | 1-8 | `PY_MAJOR_VERSION` | `0x03`
  2 | 9-16 | `PY_MINOR_VERSION` | `0x04`
  3 | 17-24 | `PY_MICRO_VERSION` | `0x01`
  4 | 25-28 | `PY_RELEASE_LEVEL` | `0xA`
  29-32 | `PY_RELEASE_SERIAL` | `0x2`

  Ainsi, `0x030401a2` est la version en notation hexadécimale sur un entier de `3.4.1a2` et `0x030a00f0` est la version en notation hexadécimale sur un entier de `3.10.0`

  Vous pouvez l'utiliser pour les comparaisons numériques, par exemple, `#if PY_VERSION_HEX >= ...`.

  This version is also available via the symbol `Py_Version`.

const unsigned long Py_Version
  Part of the Stable ABI since version 3.11.

  La version à l'exécution de Python est encodée en une constante, avec le même format que la macro `PY_VERSION_HEX`. Cela contient la version de Python utilisée lors de l'exécution.

  Added in version 3.11.

Toutes les macros données sont définies dans Include/patchlevel.h.