API and ABI Versioning

PY_VERSION_HEX是以单个整数编码的Python版本号。

例如,如果PY_VERSION_HEX设置为0x030401a2,则可以通过以下方式将其视为32位数来找到底层版本信息:

Bytes Bits (big endian order) Meaning
1 1-8 PY_MAJOR_VERSION (the 3 in 3.4.1a2)
2 9-16 PY_MINOR_VERSION (the 4 in 3.4.1a2)
3 17-24 PY_MICRO_VERSION (the 1 in 3.4.1a2)
4 25-28 PY_RELEASE_LEVEL (0xA for alpha, 0xB for beta, 0xC for release candidate and 0xF for final), in this case it is alpha.
29-32 PY_RELEASE_SERIAL (the 2 in 3.4.1a2, zero for final releases)

因此,3.4.1a2是十六进制0x030401a2

所有给定的宏在Include / patchlevel.h中定义。