GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • فهرست مطالب
  • نسخه‌گذاری API و ABI
  • پشتیبانی از زباله‌روبی چرخه‌ای
  • API پایش C
  • گزارش یک اشکال
  • بهبود این صفحه
  • نمایش منبع
  • نمایش منبع ترجمه
  • اندیس
  • ماژول‌ها
  • Python
  • 3.15.2 documentation
  • راهنمای مرجع Python/C API

This view

  • Original page
  • New address

GeezerVison is showing python.github.io — نسخه‌گذاری API و ABI

نسخه‌گذاری 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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.