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.
See C API Stability for a discussion of API and ABI stability across versions.
-
PY_MAJOR_VERSION¶
3
w3.4.1a2
.
-
PY_MINOR_VERSION¶
4
w3.4.1a2
.
-
PY_MICRO_VERSION¶
1
w3.4.1a2
.
-
PY_RELEASE_LEVEL¶
a
w3.4.1a2
. Może to być0xA
dla wersji alfa,0xB
dla wersji beta,0xC
dla wersji kandydującej do wydania lub0xF
dla wersji finalnej.
-
PY_RELEASE_SERIAL¶
2
w3.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
, a3.10.0
jest hekswersją0x030a00f0
.Służy do porównywania liczb, np.
#if PY_VERSION_HEX >= ...
.Ta strona wersji jest również dostępna za pośrednictwem symbolu
Py_Version
.
-
const unsigned long Py_Version¶
- Część stabilnego ABI od wersji 3.11.
The Python runtime version number encoded in a single constant integer, with the same format as the
PY_VERSION_HEX
macro. This contains the Python version used at run time.Added in version 3.11.
Wszystkie podane makra są zdefiniowane w Include/patchlevel.h.