نسخهگذاری API و ABI¶
ثابتهای نسخه در زمان ساخت¶
CPython شمارهی نسخهی خود را در ماکروهای زیر در معرض دید قرار میدهد. توجه داشته باشید که اینها مربوط به نسخهای هستند که کد با آن ساخته شده است. برای نسخهای که در زمان اجرا استفاده میشود، به Py_Version مراجعه کنید.
برای بحث دربارهی پایداری API و ABI در میان نسخهها، به پایداری رابط برنامهنویسی کاربردی و رابط دودویی کاربردی C مراجعه کنید.
-
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 برای کاندیدای انتشار (release candidate) یا 0xF برای نهایی (final).
برای کامل بودن، مقادیر به صورت ماکروهای زیر در دسترس هستند: PY_RELEASE_LEVEL_ALPHA (0xA)، PY_RELEASE_LEVEL_BETA (0xB)، PY_RELEASE_LEVEL_GAMMA (0xC) و PY_RELEASE_LEVEL_FINAL (0xF).
-
PY_RELEASE_SERIAL¶
2 در 3.4.1a2. برای انتشارهای نهایی، صفر است.
-
PY_VERSION_HEX¶
شمارهی نسخهی پایتون که در یک عدد صحیح کدگذاری شده است. برای جزئیات کدگذاری، به Py_PACK_FULL_VERSION() مراجعه کنید.
از این (مقدار) برای مقایسههای عددی استفاده کنید، برای مثال، #if PY_VERSION_HEX >= ....
-
PY_VERSION¶
نسخهی پایتون به صورت یک رشته، برای مثال "3.4.1a2".
این ماکروها در Include/patchlevel.h تعریف میشوند.
نسخهی زمان اجرا¶
-
const unsigned long Py_Version¶
- قسمتی از ABI پایدار از نسخهی 3.11.
شمارهی نسخهی رانتایم پایتون که در یک عدد صحیح ثابت کدگذاری شده است. برای جزئیات کدگذاری، به Py_PACK_FULL_VERSION() مراجعه کنید. این (مقدار) شامل نسخهی پایتون است که در زمان اجرا استفاده میشود.
از این (مقدار) برای مقایسههای عددی استفاده کنید، برای مثال، if (Py_Version >= ...).
اضافه شده در نسخهی 3.11.
ماکروهای بستهبندی بیتی¶
-
uint32_t Py_PACK_FULL_VERSION(int major, int minor, int micro, int release_level, int release_serial)¶
- قسمتی از ABI پایدار از نسخهی 3.14.
نسخهی دادهشده را که به صورت یک عدد صحیح ۳۲-بیتی با ساختار زیر کدگذاری شده است، برمیگرداند:
آرگومان |
تعداد بیتها |
نقاب بیتی |
شیفت بیتی |
مقادیر نمونه |
3.4.1a2
|
3.10.0
|
major |
8 |
0xFF000000
|
24 |
0x03
|
0x03
|
minor |
8 |
0x00FF0000
|
16 |
0x04
|
0x0A
|
micro |
8 |
0x0000FF00
|
8 |
0x01
|
0x00
|
release_level |
4 |
0x000000F0
|
4 |
0xA
|
0xF
|
release_serial |
4 |
0x0000000F
|
0 |
0x2
|
0x0
|
برای مثال:
نسخه |
آرگومانهای Py_PACK_FULL_VERSION |
نسخهی کدگذاری شده |
3.4.1a2
|
(3, 4, 1, 0xA, 2)
|
0x030401a2
|
3.10.0
|
(3, 10, 0, 0xF, 0)
|
0x030a00f0
|
بیتهای خارج از محدوده در آرگومانها نادیده گرفته میشوند. به عبارت دیگر، این ماکرو را میتوان به صورت زیر تعریف کرد:
#ifndef Py_PACK_FULL_VERSION
#define Py_PACK_FULL_VERSION(X, Y, Z, LEVEL, SERIAL) ( \
(((X) & 0xff) << 24) | \
(((Y) & 0xff) << 16) | \
(((Z) & 0xff) << 8) | \
(((LEVEL) & 0xf) << 4) | \
(((SERIAL) & 0xf) << 0))
#endif
Py_PACK_FULL_VERSION در درجهی نخست یک ماکرو است که برای استفاده در دستورهای #if در نظر گرفته شده است، اما بهعنوان یک تابع صادرشده نیز در دسترس است.
اضافه شده در نسخهی 3.14.
-
uint32_t Py_PACK_VERSION(int major, int minor)¶
- قسمتی از ABI پایدار از نسخهی 3.14.
معادل Py_PACK_FULL_VERSION(major, minor, 0, 0, 0) است. نتیجه با هیچ نسخهی انتشار یافتهای از پایتون مطابقت ندارد، اما در مقایسههای عددی مفید است.
اضافه شده در نسخهی 3.14.
©
حق نشر 2001 Python Software Foundation.
این صفحه تحت مجوز بنیاد نرمافزار پایتون نسخه ۲ منتشر شده است.
مثالها، دستورالعملها، و سایر کدهای موجود در مستندات همچنین تحت مجوز بدون بند BSD منتشر شدهاند.
برای اطلاعات بیشتر به
تاریخچه و مجوز مراجعه کنید.
بنیاد نرمافزار پایتون یک شرکت غیرانتفاعی است.
لطفاً کمک مالی کنید.
آخرین بهروزرسانی در نوامبر 12, 2026 (06:19 UTC).
آیا
اشکالی یافتید؟
ساخته شده با
Sphinx 9.1.0.