اشیاء برای راهنمای نوع

نوع‌های توکار گوناگونی برای راهنمایی نوع ارائه شده‌اند. در حال حاضر، دو نوع وجود دارد — GenericAlias و Union. فقط GenericAlias در C در دسترس است.

PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)
قسمتی از ABI پایدار از نسخه‌ی 3.9.

یک شیء GenericAlias ایجاد می‌کند. معادل با فراخوانی کلاس پایتونی types.GenericAlias است. آرگومان‌های origin و args به‌ترتیب ویژگی‌های __origin__ و __args__ مربوط به GenericAlias را تنظیم می‌کنند. origin باید یک PyTypeObject* باشد و args می‌تواند یک PyTupleObject* یا هر PyObject* باشد. اگر args ارسال‌شده یک تاپل نباشد، یک تاپل تک‌عضوی به‌طور خودکار ساخته می‌شود و __args__ روی (args,) تنظیم می‌شود. بررسی حداقلی روی آرگومان‌ها انجام می‌شود، بنابراین حتی اگر origin یک نوع نباشد، تابع با موفقیت اجرا خواهد شد. ویژگی __parameters__ مربوط به GenericAlias به‌صورت تنبل از __args__ ساخته می‌شود. در صورت شکست، یک استثنا مطرح می‌شود و NULL برگردانده می‌شود.

در اینجا مثالی از نحوه‌ی عام کردن یک نوع توسعه‌ای آمده است:

...
static PyMethodDef my_obj_methods[] = {
    // Other methods.
    ...
    {"__class_getitem__", Py_GenericAlias, METH_O|METH_CLASS, "my_obj is generic over its contained type"}
    ...
}

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

متد مدل داده __class_getitem__().

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

PyTypeObject Py_GenericAliasType
قسمتی از ABI پایدار از نسخه‌ی 3.9.

نوع C شیء‌ای که توسط Py_GenericAlias() برگردانده می‌شود. معادل types.GenericAlias در پایتون است.

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