summaryrefslogtreecommitdiffstats
path: root/Doc/c-api/type.rst
blob: bc0eeef2d5754c95c4c75ea6674a35bac45102ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
.. highlightlang:: c

.. _typeobjects:

Type Objects
------------

.. index:: object: type


.. ctype:: PyTypeObject

   The C structure of the objects used to describe built-in types.


.. cvar:: PyObject* PyType_Type

   .. index:: single: TypeType (in module types)

   This is the type object for type objects; it is the same object as ``type`` and
   ``types.TypeType`` in the Python layer.


.. cfunction:: int PyType_Check(PyObject *o)

   Return true if the object *o* is a type object, including instances of types
   derived from the standard type object.  Return false in all other cases.


.. cfunction:: int PyType_CheckExact(PyObject *o)

   Return true if the object *o* is a type object, but not a subtype of the
   standard type object.  Return false in all other cases.


.. cfunction:: unsigned int PyType_ClearCache(void)

   Clears the internal lookup cache. Return the current version tag.


.. cfunction:: int PyType_HasFeature(PyObject *o, int feature)

   Return true if the type object *o* sets the feature *feature*.  Type features
   are denoted by single bit flags.


.. cfunction:: int PyType_IS_GC(PyObject *o)

   Return true if the type object includes support for the cycle detector; this
   tests the type flag :const:`Py_TPFLAGS_HAVE_GC`.


.. cfunction:: int PyType_IsSubtype(PyTypeObject *a, PyTypeObject *b)

   Return true if *a* is a subtype of *b*.


.. cfunction:: PyObject* PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)

   XXX: Document.


.. cfunction:: PyObject* PyType_GenericNew(PyTypeObject *type, PyObject *args, PyObject *kwds)

   XXX: Document.


.. cfunction:: int PyType_Ready(PyTypeObject *type)

   Finalize a type object.  This should be called on all type objects to finish
   their initialization.  This function is responsible for adding inherited slots
   from a type's base class.  Return ``0`` on success, or return ``-1`` and sets an
   exception on error.