ਕਿਸਮ ਸੰਕੇਤਾਂ ਲਈ ਆਬਜੈਕਟ¶
ਕਿਸਮ ਸੰਕੇਤਾਂ ਲਈ ਕਈ ਬਿਲਟ-ਇਨ ਕਿਸਮਾਂ ਉਪਲਬਧ ਹਨ। ਇਸ ਵੇਲੇ ਦੋ ਕਿਸਮਾਂ ਮੌਜੂਦ ਹਨ — GenericAlias ਅਤੇ Union। ਇਨ੍ਹਾਂ ਵਿੱਚੋਂ ਸਿਰਫ਼ GenericAlias ਹੀ C ਲਈ ਉਪਲਬਧ ਹੈ।
-
PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)¶
- Part of the Stable ABI since version 3.9.
ਇੱਕ GenericAlias ਆਬਜੈਕਟ ਬਣਾਓ। ਇਹ Python ਕਲਾਸ
types.GenericAliasਨੂੰ ਕਾਲ ਕਰਨ ਦੇ ਬਰਾਬਰ ਹੈ। origin ਅਤੇ args ਆਰਗੂਮੈਂਟਸ ਕ੍ਰਮਵਾਰGenericAliasਦੇ__origin__ਅਤੇ__args__ਗੁਣਾਂ ਨੂੰ ਸੈੱਟ ਕਰਦੇ ਹਨ। origin ਇੱਕ PyTypeObject* ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ args ਇੱਕ PyTupleObject* ਜਾਂ ਕੋਈ ਵੀPyObject*ਹੋ ਸਕਦਾ ਹੈ। ਜੇ args ਜੋ ਦਿੱਤਾ ਗਿਆ ਹੈ ਟਿਊਪਲ ਨਹੀਂ ਹੈ, ਤਾਂ ਇੱਕ 1-ਟਿਊਪਲ ਆਪਣੇ ਆਪ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ ਅਤੇ__args__ਨੂੰ(args,)'ਤੇ ਸੈੱਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਆਰਗੂਮੈਂਟਾਂ ਲਈ ਸਿਰਫ ਘੱਟੋ-ਘੱਟ ਜਾਂਚ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਇਸ ਲਈ ਫੰਕਸ਼ਨ ਸਫਲ ਰਹੇਗਾ ਭਾਵੇਂ origin ਕਿਸੇ ਟਾਈਪ ਦਾ ਨਾ ਹੋਵੇ।GenericAlias's__parameters__ਐਟ੍ਰਿਬਿਊਟ__args__ਤੋਂ ਲੇਜ਼ੀ ਤਰੀਕੇ ਨਾਲ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ। ਅਸਫਲਤਾ 'ਤੇ, ਇੱਕ ਐਕਸੈਪਸ਼ਨ ਉਠਾਇਆ ਜਾਂਦਾ ਹੈ ਅਤੇNULLਵਾਪਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।ਇੱਥੇ ਇੱਕ ਉਦਾਹਰਨ ਦਿੱਤੀ ਗਈ ਹੈ ਕਿ ਕਿਸ ਤਰ੍ਹਾਂ ਇੱਕ ਐਕਸਟੈਂਸ਼ਨ ਕਿਸਮ ਨੂੰ generic ਬਣਾਇਆ ਜਾ ਸਕਦਾ ਹੈ:
... static PyMethodDef my_obj_methods[] = { // Other methods. ... {"__class_getitem__", Py_GenericAlias, METH_O|METH_CLASS, "my_obj is generic over its contained type"} ... }
See also
ਡਾਟਾ ਮਾਡਲ ਵਿਧੀ
__class_getitem__()।Added in version 3.9.
-
PyTypeObject Py_GenericAliasType¶
- Part of the Stable ABI since version 3.9.
Py_GenericAlias()ਦੁਆਰਾ ਵਾਪਸ ਕੀਤੇ ਆਬਜੈਕਟ ਦੀ C ਕਿਸਮ। ਇਹ Python ਵਿੱਚtypes.GenericAliasਦੇ ਬਰਾਬਰ ਹੈ।Added in version 3.9.