# 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:

  Bytes | 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`

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