اشیاء تاپل¶
-
type PyTupleObject¶
این زیرنوع از PyObject معرف یک شیء تاپل پایتون است.
-
PyTypeObject PyTuple_Type¶
- قسمتی از ABI پایدار.
این نمونه از PyTypeObject نوع تاپل پایتون را نشان میدهد؛ این همان شیء tuple در لایهی پایتون است.
-
int PyTuple_Check(PyObject *p)¶
اگر p یک شیء تاپل یا نمونهای از یک زیرنوع از نوع تاپل باشد، مقدار true را برمیگرداند. این تابع همیشه موفق میشود.
-
int PyTuple_CheckExact(PyObject *p)¶
اگر p یک شیء تاپل باشد، اما نمونهای از زیرنوعی از نوع تاپل نباشد، مقدار true را برمیگرداند. این تابع همیشه با موفقیت اجرا میشود.
-
PyObject *PyTuple_New(Py_ssize_t len)¶
- مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار. Thread safety: Atomic.
یک شیء تاپل جدید با اندازهی len برمیگرداند، یا در صورت شکست NULL را همراه با استثنای تنظیمشده برمیگرداند.
-
PyObject *PyTuple_FromArray(PyObject *const *array, Py_ssize_t size)¶
- Thread safety: Atomic.
یک تاپل با size تا آیتم ایجاد کنید و ارجاعات را از array به تاپل جدید کپی کنید.
اگر size برابر با 0 باشد، array میتواند NULL باشد.
در صورت موفقیت، یک ارجاع جدید برگردانید. در صورت بروز خطا، یک استثنا تنظیم کنید و NULL را برگردانید.
اضافه شده در نسخهی 3.15.
-
PyObject *PyTuple_Pack(Py_ssize_t n, ...)¶
- مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار. Thread safety: Atomic.
یک شیء تاپل جدید با اندازهی n برمیگرداند، یا در صورت شکست NULL به همراه یک استثنای تنظیمشده برمیگرداند. مقادیر تاپل به n آرگومان C بعدی که به اشیاء پایتون اشاره میکنند، مقداردهی اولیه میشوند. PyTuple_Pack(2, a, b) معادل Py_BuildValue("(OO)", a, b) است.
-
Py_ssize_t PyTuple_Size(PyObject *p)¶
- قسمتی از ABI پایدار. Thread safety: Atomic.
یک اشارهگر به شیء تاپل میگیرد و اندازهی آن تاپل را برمیگرداند. در صورت خطا، -1 همراه با استثنای تنظیمشده برمیگرداند.
-
Py_ssize_t PyTuple_GET_SIZE(PyObject *p)¶
- Thread safety: Atomic.
مانند PyTuple_Size()، اما بدون بررسی خطا.
-
PyObject *PyTuple_GetItem(PyObject *p, Py_ssize_t pos)¶
- مقدار بازگشتی: مرجع امانتی. قسمتی از ABI پایدار. Thread safety: Safe to call from multiple threads with external synchronization only.
شیء در موقعیت pos در تاپلی که توسط p به آن اشاره میشود را برمیگرداند. اگر pos منفی یا خارج از محدوده باشد، NULL را برمیگرداند و یک استثنای IndexError تنظیم میکند.
ارجاع بازگرداندهشده از تاپل p امانت گرفته شده است (یعنی: تنها تا زمانی که شما ارجاعی به p را در اختیار دارید معتبر است). برای به دست آوردن ارجاع قوی، از Py_NewRef(PyTuple_GetItem(...)) یا PySequence_GetItem() استفاده کنید.
-
PyObject *PyTuple_GET_ITEM(PyObject *p, Py_ssize_t pos)¶
- مقدار بازگشتی: مرجع امانتی. Thread safety: Safe to call from multiple threads with external synchronization only.
مانند PyTuple_GetItem()، اما هیچ بررسیای روی آرگومانهای خود انجام نمیدهد.
-
PyObject *PyTuple_GetSlice(PyObject *p, Py_ssize_t low, Py_ssize_t high)¶
- مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار. Thread safety: Atomic.
اسلایس تاپلی را که p به آن اشاره میکند، بین low و high برمیگرداند، یا در صورت شکست NULL را همراه با استثنای تنظیمشده برمیگرداند.
این معادل عبارت پایتونی p[low:high] است. اندیسگذاری از انتهای تاپل پشتیبانی نمیشود.
-
int PyTuple_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)¶
- قسمتی از ABI پایدار. Thread safety: Safe to call from multiple threads with external synchronization only.
یک ارجاع به شیء o در موقعیت pos از تاپلی که p به آن اشاره میکند درج کنید. در صورت موفقیت 0 را برگردانید. اگر pos خارج از کران باشد، مقدار -1 را برگردانید و یک استثنای IndexError تنظیم کنید. این تابع باید فقط برای پر کردن تاپلهای کاملاً تازه استفاده شود؛ استفاده از آن روی یک تاپل موجود ناامندرنخ (thread-unsafe) است.
نکته
این تابع ارجاعی به o را «میدزدد (steal)» و ارجاع به آیتمی را که از قبل در جایگاه مورد تأثیر تاپل قرار دارد، دور میریزد (مگر اینکه NULL بوده باشد).
-
void PyTuple_SET_ITEM(PyObject *p, Py_ssize_t pos, PyObject *o)¶
- Thread safety: Safe to call from multiple threads with external synchronization only.
مشابه PyTuple_SetItem() است، اما هیچ بررسی خطایی انجام نمیدهد و فقط باید برای پر کردن تاپلهای کاملاً تازه استفاده شود؛ استفاده از آن روی یک تاپل موجود ناامندرنخ است.
اگر پایتون در حالت اشکالزدایی یا با ادعاها ساخته شده باشد، بررسی کرانها بهصورت یک ادعا انجام میشود.
نکته
این تابع ارجاعی به o را «میدزدد» و برخلاف PyTuple_SetItem()، ارجاع به هیچ آیتمی را که در حال جایگزینی است دور نمیاندازد؛ هر ارجاعی که در جایگاه pos از تاپل باشد، نشت خواهد شد.
هشدار
این ماکرو باید تنها روی تاپلهایی که بهتازگی ایجاد شدهاند استفاده شود. استفاده از این ماکرو روی تاپلی که از قبل در حال استفاده است (یا به عبارت دیگر، شمارش ارجاع آن بزرگتر از ۱ است) ممکن است به رفتار تعریفنشده منجر شود.
-
int _PyTuple_Resize(PyObject **p, Py_ssize_t newsize)¶
- Thread safety: Safe to call from multiple threads with external synchronization only.
میتواند برای تغییر اندازهی یک تاپل استفاده شود. newsize طول جدید تاپل خواهد بود. از آنجا که تاپلها قرار است تغییرناپذیر باشند، این تابع فقط باید زمانی استفاده شود که تنها یک ارجاع به شیء وجود داشته باشد. اگر ممکن است تاپل از قبل توسط بخش دیگری از کد شناخته شده باشد، از این تابع استفاده نکنید. تاپل همیشه از انتها بزرگتر یا کوچکتر میشود. این کار را بهعنوان نابود کردن تاپل قدیمی و ایجاد یک تاپل جدید در نظر بگیرید، فقط با کارایی بیشتر. در صورت موفقیت 0 را برمیگرداند. کد کلاینت هرگز نباید فرض کند که مقدار حاصل *p با مقدار قبل از فراخوانی این تابع یکسان خواهد بود. اگر شیء ارجاعشده توسط *p جایگزین شود، *p اصلی نابود میشود. در صورت شکست، -1 را برمیگرداند، *p را برابر NULL قرار میدهد و MemoryError یا SystemError ایجاد میکند.
©
حق نشر 2001 Python Software Foundation.
این صفحه تحت مجوز بنیاد نرمافزار پایتون نسخه ۲ منتشر شده است.
مثالها، دستورالعملها، و سایر کدهای موجود در مستندات همچنین تحت مجوز بدون بند BSD منتشر شدهاند.
برای اطلاعات بیشتر به
تاریخچه و مجوز مراجعه کنید.
بنیاد نرمافزار پایتون یک شرکت غیرانتفاعی است.
لطفاً کمک مالی کنید.
آخرین بهروزرسانی در نوامبر 12, 2026 (06:19 UTC).
آیا
اشکالی یافتید؟
ساخته شده با
Sphinx 9.1.0.