ਕਿਸਮ ਸੰਕੇਤਾਂ ਲਈ ਆਬਜੈਕਟ

ਕਿਸਮ ਸੰਕੇਤਾਂ ਲਈ ਕਈ ਬਿਲਟ-ਇਨ ਕਿਸਮਾਂ ਉਪਲਬਧ ਹਨ। ਇਸ ਵੇਲੇ ਦੋ ਕਿਸਮਾਂ ਮੌਜੂਦ ਹਨ — 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.