پروتکل پیمایشگر¶
دو تابع بهطور خاص برای کار با پیمایشگرها وجود دارند.
-
int PyIter_Check(PyObject *o)¶
- قسمتی از ABI پایدار از نسخهی 3.8.
اگر شیء o بتواند بهطور ایمن به PyIter_NextItem() پاس داده شود، مقدار غیرصفر و در غیر این صورت 0 برگردانده میشود. این تابع همیشه با موفقیت انجام میشود.
-
int PyAIter_Check(PyObject *o)¶
- قسمتی از ABI پایدار از نسخهی 3.10.
اگر شیء o پروتکل AsyncIterator را فراهم کند، مقدار غیر صفر برمیگرداند و در غیر این صورت 0. این تابع همیشه موفق میشود.
اضافه شده در نسخهی 3.10.
-
int PyIter_NextItem(PyObject *iter, PyObject **item)¶
- قسمتی از ABI پایدار از نسخهی 3.14.
در صورت موفقیت، مقدار 1 را برمیگرداند و item را برابر یک ارجاع قوی به مقدار بعدی پیمایشگر iter قرار میدهد. اگر هیچ مقدار باقیماندهای وجود نداشته باشد، مقدار 0 را برمیگرداند و item را برابر NULL قرار میدهد. در صورت خطا، مقدار -1 را برمیگرداند، item را برابر NULL قرار میدهد و یک استثنا تنظیم میکند.
اضافه شده در نسخهی 3.14.
-
PyObject *PyIter_Next(PyObject *o)¶
- مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار.
این نسخهای قدیمیتر از PyIter_NextItem() است که برای سازگاری با نسخههای قبلی نگه داشته شده است. استفاده از PyIter_NextItem() را ترجیح دهید.
مقدار بعدی را از پیمایشگر o برمیگرداند. شیء باید طبق PyIter_Check() یک پیمایشگر باشد (بررسی این مورد بر عهدهی فراخوانکننده است). اگر مقدار باقیماندهای وجود نداشته باشد، NULL را بدون تنظیم هیچ استثنایی برمیگرداند. اگر هنگام بازیابی آیتم خطایی رخ دهد، NULL را برمیگرداند و استثنا را منتقل میکند.
-
type PySendResult¶
مقدار enum که برای نمایش نتایج مختلف تابع PyIter_Send() استفاده میشود.
اضافه شده در نسخهی 3.10.
-
PySendResult PyIter_Send(PyObject *iter, PyObject *arg, PyObject **presult)¶
- قسمتی از ABI پایدار از نسخهی 3.10.
مقدار arg را به پیمایشگر iter ارسال میکند. بازگشت:
PYGEN_RETURN اگر پیمایشگر بازگشت کند. مقدار بازگشتی از طریق presult بازگردانده میشود.
PYGEN_NEXT اگر پیمایشگر مقداری تولید کند. مقدار تولیدشده از طریق presult بازگردانده میشود.
اگر پیمایشگر یک استثنا ایجاد کرده باشد، PYGEN_ERROR را برمیگرداند. presult روی NULL تنظیم میشود.
اضافه شده در نسخهی 3.10.
©
حق نشر 2001 Python Software Foundation.
این صفحه تحت مجوز بنیاد نرمافزار پایتون نسخه ۲ منتشر شده است.
مثالها، دستورالعملها، و سایر کدهای موجود در مستندات همچنین تحت مجوز بدون بند BSD منتشر شدهاند.
برای اطلاعات بیشتر به
تاریخچه و مجوز مراجعه کنید.
بنیاد نرمافزار پایتون یک شرکت غیرانتفاعی است.
لطفاً کمک مالی کنید.
آخرین بهروزرسانی در نوامبر 12, 2026 (06:19 UTC).
آیا
اشکالی یافتید؟
ساخته شده با
Sphinx 9.1.0.