Версионирование API и ABI¶
CPython раскрывает номер своей версии в следующих макросах. Обратите внимание, что они соответствуют версии, с которой код создан, а не обязательно версии, используемой во время исполнения.
См. C API Стабильность для обсуждения стабильности API и ABI в разных версиях.
-
PY_MAJOR_VERSION¶ 3в3.4.1a2.
-
PY_MINOR_VERSION¶ 4в3.4.1a2.
-
PY_MICRO_VERSION¶ 1в3.4.1a2.
-
PY_RELEASE_LEVEL¶ aв3.4.1a2. Это может быть0xAдля альфы,0xBдля беты,0xCдля релиз-кандидата или0xFдля финала.
-
PY_RELEASE_SERIAL¶ 2в3.4.1a2. Ноль для финальных релизов.
-
PY_VERSION_HEX¶ Номер версии Python, закодированный в виде одного целого числа.
Информацию о версии можно найти, рассматривая ее как 32-битное число следующим образом:
Байты
Биты (большой порядок следования)
Значение
Значение для
3.4.1a21
1-8
PY_MAJOR_VERSION0x032
9-16
PY_MINOR_VERSION0x043
17-24
PY_MICRO_VERSION0x014
25-28
PY_RELEASE_LEVEL0xA29-32
PY_RELEASE_SERIAL0x2Таким образом,
3.4.1a2является гексверсией0x030401a2, а3.10.0является гексверсией0x030a00f0.
Все приведенные макросы определены в Include/patchlevel.h.