اشیاء اسلایس¶
-
PyTypeObject PySlice_Type¶
- قسمتی از ABI پایدار.
شیء نوع برای اشیاء اسلایس. این همان
sliceدر لایهی پایتون است.
-
int PySlice_Check(PyObject *ob)¶
اگر ob یک شیء اسلایس باشد، مقدار درست را برمیگرداند؛ ob نباید
NULLباشد. این تابع همیشه با موفقیت انجام میشود.
-
PyObject *PySlice_New(PyObject *start, PyObject *stop, PyObject *step)¶
- مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار.
یک شیء اسلایس جدید با مقادیر دادهشده برمیگرداند. پارامترهای start، stop و step بهعنوان مقادیر ویژگیهای همنام شیء اسلایس استفاده میشوند. هر یک از مقادیر میتواند
NULLباشد، که در این صورتNoneبرای ویژگی مربوطه استفاده خواهد شد.اگر نتوان شیء جدید را تخصیص داد،
NULLبههمراه یک استثنا تنظیمشده بازگردانید.
-
int PySlice_GetIndices(PyObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step)¶
- قسمتی از ABI پایدار.
اندیسهای شروع، توقف و گام را از شیء اسلایس slice، با فرض دنبالهای به طول length، بازیابی میکند. اندیسهای بزرگتر از length را بهعنوان خطا در نظر میگیرد.
در صورت موفقیت
0و در صورت خطا-1را بدون تنظیم استثنا برمیگرداند (مگر آنکه یکی از اندیسهاNoneنباشد و نتوان آن را به عدد صحیح تبدیل کرد، که در این حالت-1همراه با استثنای تنظیمشده برگردانده میشود).احتمالاً نمیخواهید از این تابع استفاده کنید.
تغییر یافته در نسخهی 3.2: نوع پارامتر slice قبلاً
PySliceObject*بود.
-
int PySlice_GetIndicesEx(PyObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength)¶
- قسمتی از ABI پایدار.
جایگزین قابل استفاده برای
PySlice_GetIndices(). اندیسهای شروع، توقف و گام را از شیء اسلایس slice با فرض دنبالهای به طول length بازیابی میکند و طول اسلایس را در slicelength ذخیره میکند. اندیسهای خارج از محدوده به شکلی سازگار با نحوهی برخورد با اسلایسهای معمولی محدود میشوند.در صورت موفقیت
0و در صورت خطا-1به همراه استثنای تنظیمشده برمیگرداند.توجه
این تابع برای دنبالههای با اندازهی قابل تغییر، ایمن در نظر گرفته نمیشود. فراخوانی آن باید با ترکیبی از
PySlice_Unpack()وPySlice_AdjustIndices()جایگزین شود که در آنif (PySlice_GetIndicesEx(slice, length, &start, &stop, &step, &slicelength) < 0) { // return error }
جایگزین میشود با
if (PySlice_Unpack(slice, &start, &stop, &step) < 0) { // return error } slicelength = PySlice_AdjustIndices(length, &start, &stop, step);
تغییر یافته در نسخهی 3.2: نوع پارامتر slice قبلاً
PySliceObject*بود.تغییر یافته در نسخهی 3.6.1: اگر
Py_LIMITED_APIتنظیم نشده باشد یا روی مقداری بین0x03050400و0x03060000(شامل نمیشود) یا0x03060100یا بالاتر تنظیم شده باشد،PySlice_GetIndicesEx()بهصورت یک ماکرو با استفاده ازPySlice_Unpack()وPySlice_AdjustIndices()پیادهسازی شده است. آرگومانهای start، stop و step بیش از یک بار ارزیابی میشوند.منسوخ شده از نسخهی 3.6.1: اگر
Py_LIMITED_APIبه مقداری کمتر از0x03050400یا به مقداری بین0x03060000و0x03060100(شامل نمیشود) تنظیمشده باشد،PySlice_GetIndicesEx()تابعی منسوخ است.
-
int PySlice_Unpack(PyObject *slice, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step)¶
- قسمتی از ABI پایدار از نسخهی 3.7.
اعضای دادهی آغاز، پایان و گام را از یک شیء اسلایس بهصورت اعداد صحیح C استخراج میکند. مقادیر بزرگتر از
PY_SSIZE_T_MAXرا بیصدا بهPY_SSIZE_T_MAXکاهش میدهد، مقادیر کمتر ازPY_SSIZE_T_MINبرای آغاز و پایان را بیصدا بهPY_SSIZE_T_MINافزایش میدهد و مقادیر کمتر از-PY_SSIZE_T_MAXبرای گام را بیصدا به-PY_SSIZE_T_MAXافزایش میدهد.در صورت خطا
-1به همراه استثنای تنظیمشده و در صورت موفقیت0برمیگرداند.اضافه شده در نسخهی 3.6.1.
-
Py_ssize_t PySlice_AdjustIndices(Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t step)¶
- قسمتی از ABI پایدار از نسخهی 3.7.
اندیسهای شروع/پایان اسلایس را با فرض دنبالهای به طول مشخصشده تنظیم میکند. اندیسهای خارج از محدوده به شکلی سازگار با نحوهی برخورد با اسلایسهای معمولی محدود میشوند.
طول اسلایس را برمیگرداند. همیشه موفق است. کد پایتون را فراخوانی نمیکند.
اضافه شده در نسخهی 3.6.1.
شیء Ellipsis¶
-
PyTypeObject PyEllipsis_Type¶
- قسمتی از ABI پایدار.
نوع شیء
Ellipsisپایتون. همانندtypes.EllipsisTypeدر لایهی پایتون است.
-
PyObject *Py_Ellipsis¶
شیء
Ellipsisپایتون. این شیء هیچ متدی ندارد. مانندPy_None، این یک شیء تکنمونهی نامیرا است.تغییر یافته در نسخهی 3.12:
Py_Ellipsisنامیرا است.