# Versiones de API y ABI

CPython expone su número de versión en las siguientes macros. Tenga en cuenta que estos corresponden a la versión con la que se construye el código, no necesariamente la versión utilizada en tiempo de ejecución.

Consulte Estabilidad de la API en C para obtener una discusión sobre la estabilidad de API y ABI en todas las versiones.

PY_MAJOR_VERSION

  El `3` en `3.4.1a2`.

PY_MINOR_VERSION

  El `4` en `3.4.1a2`.

PY_MICRO_VERSION

  El `1` en `3.4.1a2`.

PY_RELEASE_LEVEL

  La `a` en `3.4.1a2`. Puede ser `0xA` para la versión alfa, `0xB` para la versión beta, `0xC` para la versión candidata o `0xF` para la versión final.

PY_RELEASE_SERIAL

  El `2` en `3.4.1a2`, cero para lanzamientos finales.

PY_VERSION_HEX

  El número de versión de Python codificado en un solo entero.

  La información de la versión subyacente se puede encontrar tratándola como un número de 32 bits de la siguiente manera:

  Bytes | Bits (orden big-endian) | Significado | Valor para `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`

  Así, `3.4.1a2` es la hexadecimal `0x030401a2` y `3.10.0` es la hexadecimal `0x030a00f0`.

  Use esto para comparaciones numéricas, por ejemplo `#if PY_VERSION_HEX >= ...`.

  Esta versión también está disponible a través del símbolo `Py_Version`.

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

  El número de versión de Python en tiempo de ejecución codificado en un único entero constante, con el mismo formato que la macro `PY_VERSION_HEX`. Contiene la versión de Python utilizada en tiempo de ejecución.

  Added in version 3.11.

Todas las macros dadas se definen en Include/patchlevel.h.