اشیاء پیمایش‌گر

پایتون دو شیء پیمایش‌گر همه‌منظوره فراهم می‌کند. اولی یک پیمایش‌گر دنباله است که با هر دنباله دلخواهی که از متد __getitem__() پشتیبانی می‌کند کار می‌کند. دومی با یک شیء فراخوانی‌پذیر و یک مقدار نشانگر کار می‌کند؛ فراخوانی‌پذیر برای هر آیتم در دنباله فراخوانی می‌شود و پیمایش هنگامی که مقدار نشانگر بازگردانده شود پایان می‌یابد.

PyTypeObject PySeqIter_Type
قسمتی از ABI پایدار.

شیء نوع برای اشیاء پیمایش‌گری که توسط PySeqIter_New() و شکل تک‌آرگومانی تابع توکار iter() برای نوع‌های دنباله توکار بازگردانده می‌شوند.

int PySeqIter_Check(PyObject *op)

اگر نوع op برابر PySeqIter_Type باشد، مقدار true را برمی‌گرداند. این تابع همیشه با موفقیت انجام می‌شود.

PyObject *PySeqIter_New(PyObject *seq)
مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار.

یک پیمایش‌گر برمی‌گرداند که با شیء دنباله‌ی عمومی، seq کار می‌کند. پیمایش زمانی پایان می‌یابد که دنباله هنگام عملیات زیرنویسی، استثنای IndexError را ایجاد کند.

PyTypeObject PyCallIter_Type
قسمتی از ABI پایدار.

شیء نوع برای اشیاء پیمایش‌گری که توسط PyCallIter_New() و شکل دوآرگومانی تابع توکار iter() بازگردانده می‌شوند.

int PyCallIter_Check(PyObject *op)

اگر نوع op برابر با PyCallIter_Type باشد، مقدار true را برمی‌گرداند. این تابع همیشه با موفقیت اجرا می‌شود.

PyObject *PyCallIter_New(PyObject *callable, PyObject *sentinel)
مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار.

یک پیمایش‌گر جدید برگردانید. پارامتر اول، callable، می‌تواند هر شیء فراخوانی‌پذیر پایتونی باشد که بدون هیچ پارامتری می‌توان آن را فراخوانی کرد؛ هر فراخوانی آن باید آیتم بعدی در پیمایش را برگرداند. وقتی callable مقداری برابر با sentinel برگرداند، پیمایش خاتمه می‌یابد.

اشیاء بازه

PyTypeObject PyRange_Type
قسمتی از ABI پایدار.

شیء نوع برای اشیاء range.

int PyRange_Check(PyObject *o)

در صورتی که شیء o نمونه‌ای از یک شیء range باشد، true را برمی‌گرداند. این تابع همیشه با موفقیت اجرا می‌شود.

نوع‌های پیمایش‌گر توکار

این‌ها نوع‌های پیمایش توکار هستند که در API زبان C پایتون گنجانده شده‌اند، اما هیچ تابع اضافه‌ای ارائه نمی‌دهند. آن‌ها برای کامل بودن اینجا قرار دارند.

نوع C

نوع پایتونی

PyTypeObject PyEnum_Type
قسمتی از ABI پایدار.

enumerate

PyTypeObject PyFilter_Type
قسمتی از ABI پایدار.

filter

PyTypeObject PyMap_Type
قسمتی از ABI پایدار.

map

PyTypeObject PyReversed_Type
قسمتی از ABI پایدار.

reversed

PyTypeObject PyZip_Type
قسمتی از ABI پایدار.

zip

سایر اشیاء پیمایش‌گر

PyTypeObject PyByteArrayIter_Type
قسمتی از ABI پایدار.
PyTypeObject PyBytesIter_Type
قسمتی از ABI پایدار.
PyTypeObject PyListIter_Type
قسمتی از ABI پایدار.
PyTypeObject PyListRevIter_Type
قسمتی از ABI پایدار.
PyTypeObject PySetIter_Type
قسمتی از ABI پایدار.
PyTypeObject PyTupleIter_Type
قسمتی از ABI پایدار.
PyTypeObject PyRangeIter_Type
قسمتی از ABI پایدار.
PyTypeObject PyLongRangeIter_Type
قسمتی از ABI پایدار.
PyTypeObject PyDictIterKey_Type
قسمتی از ABI پایدار.
PyTypeObject PyDictRevIterKey_Type
قسمتی از ABI پایدار از نسخه‌ی 3.8.
PyTypeObject PyDictIterValue_Type
قسمتی از ABI پایدار.
PyTypeObject PyDictRevIterValue_Type
قسمتی از ABI پایدار از نسخه‌ی 3.8.
PyTypeObject PyDictIterItem_Type
قسمتی از ABI پایدار.
PyTypeObject PyDictRevIterItem_Type
قسمتی از ABI پایدار از نسخه‌ی 3.8.
PyTypeObject PyODictIter_Type

شیءهای نوع برای پیمایش‌گرهای شیءهای توکار گوناگون.

نمونه‌هایی از این‌ها را مستقیماً ایجاد نکنید؛ به جای آن، فراخوانی PyObject_GetIter() را ترجیح دهید.

توجه داشته باشید که هیچ تضمینی وجود ندارد که یک نوع توکار مشخص از نوع پیمایش‌گر مشخصی استفاده کند. برای مثال، پیمایش روی range بسته به اندازه‌ی بازه از یکی از دو نوع پیمایش‌گر استفاده می‌کند. نوع‌های دیگر ممکن است در آینده بدون هشدار شروع به استفاده از طرح‌واره‌ای مشابه کنند.