اشیاء تولیدگر

اشیاء تولیدگر همان چیزی هستند که پایتون برای پیاده‌سازی پیمایش‌گرهای تولیدگر از آن‌ها استفاده می‌کند. این اشیاء معمولاً با پیمایش کردن تابعی که مقادیر را بازدهی (yield) می‌کند ایجاد می‌شوند، نه با فراخوانی صریح PyGen_New() یا PyGen_NewWithQualName().

type PyGenObject

ساختار C استفاده‌شده برای اشیاء تولیدگر.

PyTypeObject PyGen_Type

شیء نوعِ متناظر با شیءهای تولیدگر.

int PyGen_Check(PyObject *ob)

اگر ob یک شیء تولیدگر باشد، مقدار true را برمی‌گرداند؛ ob نباید NULL باشد. این تابع همیشه با موفقیت انجام می‌شود.

int PyGen_CheckExact(PyObject *ob)

اگر نوع ob برابر PyGen_Type باشد، مقدار true برمی‌گرداند؛ ob نباید NULL باشد. این تابع همیشه با موفقیت اجرا می‌شود.

PyObject *PyGen_New(PyFrameObject *frame)
مقدار بازگشتی: مرجع جدید.

یک شیء تولیدگر جدید بر اساس شیء frame ایجاد کرده و برمی‌گرداند. ارجاعی به frame توسط این تابع «دزدیده» می‌شود (حتی در صورت بروز خطا). این آرگومان نباید NULL باشد.

PyObject *PyGen_NewWithQualName(PyFrameObject *frame, PyObject *name, PyObject *qualname)
مقدار بازگشتی: مرجع جدید.

یک شیء تولیدگر جدید بر اساس شیء frame ایجاد می‌کند و برمی‌گرداند که __name__ و __qualname__ آن روی name و qualname تنظیم شده‌اند. ارجاعی به frame توسط این تابع «دزدیده» می‌شود (حتی در صورت خطا). آرگومان frame نباید NULL باشد.

PyCodeObject *PyGen_GetCode(PyGenObject *gen)

یک ارجاع قوی جدید به شیء کدی که توسط gen دربرگرفته‌شده است، برمی‌گرداند. این تابع همیشه با موفقیت انجام می‌شود.

اشیاء تولیدگر ناهمگام

همچنین ملاحظه نمائید

PEP 525

PyTypeObject PyAsyncGen_Type

شیء نوعِ متناظر با شیءهای تولیدگر ناهمگام. این در لایه‌ی پایتون به‌صورت types.AsyncGeneratorType دسترس‌پذیر است.

اضافه شده در نسخه‌ی 3.6.

PyObject *PyAsyncGen_New(PyFrameObject *frame, PyObject *name, PyObject *qualname)

ایجادکننده‌ی یک تولیدگر ناهمگام جدید است که frame را دربر می‌گیرد و مقدارهای __name__ و __qualname__ آن را به‌ترتیب روی name و qualname تنظیم می‌کند. frame توسط این تابع (ربوده‌شده) محسوب می‌شود (حتی در صورت بروز خطا) و نباید NULL باشد.

در صورت موفقیت، این تابع یک ارجاع قوی به تولیدگر ناهمگام جدید برمی‌گرداند. در صورت شکست، این تابع NULL را همراه با یک استثنای تنظیم‌شده برمی‌گرداند.

اضافه شده در نسخه‌ی 3.6.

int PyAsyncGen_CheckExact(PyObject *op)

اگر op یک شیء تولیدگر ناهمگام باشد، true برمی‌گرداند و در غیر این صورت false. این تابع همیشه موفق می‌شود.

اضافه شده در نسخه‌ی 3.6.

API منسوخ

PyAsyncGenASend_CheckExact(op)

این یک API است که به اشتباه در C API پایتون گنجانده شده بود.

این تنها برای کامل بودن اینجا قرار گرفته است؛ از این API استفاده نکنید.