Objekt för typhinting¶
Olika inbyggda typer för typhinting tillhandahålls. För närvarande finns två typer – GenericAlias och Union. Endast GenericAlias
är exponerad för C.
-
PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)¶
- En del av Stabil ABI sedan version 3.9.
Skapa ett GenericAlias-objekt. Motsvarar anrop av Python-klassen
types.GenericAlias
. Argumenten origin och args angerGenericAlias
attribut__origin__
respektive__args__
. origin bör vara ett PyTypeObject*, och args kan vara ett PyTupleObject* eller valfrittPyObject*
. Om args som skickas inte är en tupel, konstrueras automatiskt en 1-tupel och__args__
sätts till(args,)
. Minimal kontroll görs för argumenten, så funktionen kommer att lyckas även om origin inte är en typ. Attributet__parameters__
förGenericAlias
konstrueras latent från__args__
. Om det misslyckas uppstår ett undantag ochNULL
returneras.Här är ett exempel på hur man gör en tilläggstyp generisk:
... static PyMethodDef my_obj_methods[] = { // Other methods. ... {"__class_getitem__", Py_GenericAlias, METH_O|METH_CLASS, "See PEP 585"} ... }
Se även
Datamodellmetoden
__class_getitem__()
.Tillagd i version 3.9.
-
PyTypeObject Py_GenericAliasType¶
- En del av Stabil ABI sedan version 3.9.
C-typen för det objekt som returneras av
Py_GenericAlias()
. Motsvarartypes.GenericAlias
i Python.Tillagd i version 3.9.