اشیاء برای راهنمای نوع¶
نوعهای توکار گوناگونی برای راهنمایی نوع ارائه شدهاند. در حال حاضر، دو نوع وجود دارد — 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.