# 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`.

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