API i wersjonowanie ABI

CPython (standardowa implementacja) ujawnia swój numer wersji w następujących makrach. Należy pamiętać, że odpowiadają one kodowi wersji, z którym został zbudowany, niekoniecznie wersji używanej w czasie działania.

Zobacz C API Stability w celu omówienia stabilności API i ABI w różnych wersjach.

PY_MAJOR_VERSION

3 w 3.4.1a2.

PY_MINOR_VERSION

4 w 3.4.1a2.

PY_MICRO_VERSION

1 w 3.4.1a2.

PY_RELEASE_LEVEL

a w 3.4.1a2. Może to być 0xA dla wersji alfa, 0xB dla wersji beta, 0xC dla wersji kandydującej do wydania lub 0xF dla wersji finalnej.

PY_RELEASE_SERIAL

2 w 3.4.1a2. Zero dla ostatecznych wydań.

PY_VERSION_HEX

Numer wersji Pythona zakodowany w pojedynczej liczbie całkowitej.

Podstawowe informacje wersji można znaleźć, traktując je jako 32-bitową liczbę w następujący sposób:

Bajty

Bity (kolejność big endian)

Znaczenie

Wartość dla 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

Tak więc 3.4.1a2 jest hekswersją 0x030401a2, a 3.10.0 jest hekswersją 0x030a00f0.

Wszystkie podane makra są zdefiniowane w Include/patchlevel.h.