2008-01-19 18:08:21 -04:00
|
|
|
.. 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.
|
|
|
|
|
|
|
|
.. versionadded:: 2.2
|
|
|
|
|
|
|
|
|
2008-01-27 19:34:59 -04:00
|
|
|
.. cfunction:: unsigned int PyType_ClearCache(void)
|
|
|
|
|
2008-05-28 08:21:39 -03:00
|
|
|
Clear the internal lookup cache. Return the current version tag.
|
|
|
|
|
|
|
|
.. versionadded:: 2.6
|
|
|
|
|
|
|
|
|
|
|
|
.. cfunction:: void PyType_Modified(PyTypeObject *type)
|
|
|
|
|
|
|
|
Invalidate the internal lookup cache for the type and all of its
|
|
|
|
subtypes. This function must be called after any manual
|
|
|
|
modification of the attributes or base classes of the type.
|
2008-01-27 19:34:59 -04:00
|
|
|
|
|
|
|
.. versionadded:: 2.6
|
|
|
|
|
|
|
|
|
2008-01-19 18:08:21 -04:00
|
|
|
.. 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`.
|
|
|
|
|
|
|
|
.. versionadded:: 2.0
|
|
|
|
|
|
|
|
|
|
|
|
.. cfunction:: int PyType_IsSubtype(PyTypeObject *a, PyTypeObject *b)
|
|
|
|
|
|
|
|
Return true if *a* is a subtype of *b*.
|
|
|
|
|
|
|
|
.. versionadded:: 2.2
|
|
|
|
|
|
|
|
|
|
|
|
.. cfunction:: PyObject* PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)
|
|
|
|
|
|
|
|
.. versionadded:: 2.2
|
|
|
|
|
Merged revisions 71873-71874,71882,71890,71893,71898-71900,71910,71914-71923,71925-71929,71931-71934,71937 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r71873 | jeroen.ruigrok | 2009-04-25 13:15:06 +0200 (za, 25 apr 2009) | 2 lines
Reformat prior to expanding.
........
r71874 | jeroen.ruigrok | 2009-04-25 13:59:09 +0200 (za, 25 apr 2009) | 2 lines
First attempt to document PyObject_HEAD_INIT and PyVarObject_HEAD_INIT.
........
r71882 | jeroen.ruigrok | 2009-04-25 14:49:10 +0200 (za, 25 apr 2009) | 3 lines
Issue #4239: adjust email examples not to use connect() and terminate with
quit() and not close().
........
r71890 | jeroen.ruigrok | 2009-04-25 15:07:40 +0200 (za, 25 apr 2009) | 3 lines
Rewrite a sentence to be more in line with the rest of the documentation with
regard to person and audience.
........
r71893 | jeroen.ruigrok | 2009-04-25 15:58:58 +0200 (za, 25 apr 2009) | 2 lines
Reformat file prior to editing.
........
r71898 | jeroen.ruigrok | 2009-04-25 16:24:30 +0200 (za, 25 apr 2009) | 2 lines
Reformat prior to editing.
........
r71899 | jeroen.ruigrok | 2009-04-25 16:27:00 +0200 (za, 25 apr 2009) | 3 lines
The type for ppos has been Py_ssize_t since 2.5, reflect this in the
documentation.
........
r71900 | jeroen.ruigrok | 2009-04-25 16:28:02 +0200 (za, 25 apr 2009) | 2 lines
Reformat paragraph.
........
r71910 | jeroen.ruigrok | 2009-04-25 19:59:03 +0200 (za, 25 apr 2009) | 4 lines
Issue #4129: Belatedly document which C API functions had their argument(s) or
return type changed from int or int * to Py_ssize_t or Py_ssize_t * as this
might cause problems on 64-bit platforms.
........
r71914 | jeroen.ruigrok | 2009-04-25 20:31:20 +0200 (za, 25 apr 2009) | 2 lines
Reformat prior to editing.
........
r71915 | jeroen.ruigrok | 2009-04-25 20:46:03 +0200 (za, 25 apr 2009) | 2 lines
Issue #4129: Document more int -> Py_ssize_t changes.
........
r71916 | jeroen.ruigrok | 2009-04-25 20:53:48 +0200 (za, 25 apr 2009) | 2 lines
Reformat prior to editing.
........
r71917 | jeroen.ruigrok | 2009-04-25 20:57:32 +0200 (za, 25 apr 2009) | 2 lines
Reference to an int type, whereas it's a Py_ssize_t as the synopsis states.
........
r71918 | jeroen.ruigrok | 2009-04-25 21:04:15 +0200 (za, 25 apr 2009) | 2 lines
Since I edited this file, reformat for future edits.
........
r71919 | jeroen.ruigrok | 2009-04-25 21:10:52 +0200 (za, 25 apr 2009) | 2 lines
Reformat prior to editing.
........
r71920 | jeroen.ruigrok | 2009-04-25 21:44:55 +0200 (za, 25 apr 2009) | 5 lines
Issue #4129: More documentation pointers about int -> Py_ssize_t.
Also fix up the documentation for PyObject_GC_Resize(). It seems that since
it first got documented, the documentation was actually for
_PyObject_GC_Resize().
........
r71921 | jeroen.ruigrok | 2009-04-25 21:46:19 +0200 (za, 25 apr 2009) | 2 lines
Issue #4129: Documentation notes for int -> Py_ssize_t changes.
........
r71922 | jeroen.ruigrok | 2009-04-25 21:49:05 +0200 (za, 25 apr 2009) | 2 lines
Reformat, since I've been busy here anyway.
........
r71923 | jeroen.ruigrok | 2009-04-25 21:54:34 +0200 (za, 25 apr 2009) | 2 lines
Issue #4129: Add a versionchanged notice for a few forgotten entries.
........
r71925 | jeroen.ruigrok | 2009-04-25 22:37:39 +0200 (za, 25 apr 2009) | 2 lines
Since it's a macro, actually refer to it as such instead of function.
........
r71926 | jeroen.ruigrok | 2009-04-25 22:40:10 +0200 (za, 25 apr 2009) | 2 lines
Reformat prior to editing.
........
r71927 | jeroen.ruigrok | 2009-04-25 22:41:40 +0200 (za, 25 apr 2009) | 2 lines
Issue #4129: int -> Py_ssize_t documentation.
........
r71928 | jeroen.ruigrok | 2009-04-25 22:43:30 +0200 (za, 25 apr 2009) | 2 lines
Reformat prior to editing.
........
r71929 | jeroen.ruigrok | 2009-04-25 22:44:58 +0200 (za, 25 apr 2009) | 2 lines
Issue #4129: int -> Py_ssize_t documentation.
........
r71931 | jeroen.ruigrok | 2009-04-25 22:50:27 +0200 (za, 25 apr 2009) | 2 lines
Issue #4129: int -> Py_ssize_t documentation.
........
r71932 | jeroen.ruigrok | 2009-04-25 22:55:39 +0200 (za, 25 apr 2009) | 2 lines
Issue #4129: more int -> Py_ssize_t documentation.
........
r71933 | jeroen.ruigrok | 2009-04-25 22:58:35 +0200 (za, 25 apr 2009) | 2 lines
Issue #4129: more int -> Py_ssize_t documentation.
........
r71934 | jeroen.ruigrok | 2009-04-25 23:02:34 +0200 (za, 25 apr 2009) | 2 lines
Issue #4129: field changed from int to Py_ssize_t.
........
r71937 | jeroen.ruigrok | 2009-04-25 23:16:05 +0200 (za, 25 apr 2009) | 2 lines
Issue #4129: document int -> Py_ssize_t changes.
........
2009-04-29 05:00:05 -03:00
|
|
|
.. versionchanged:: 2.5
|
|
|
|
This function used an :ctype:`int` type for *nitems*. This might require
|
|
|
|
changes in your code for properly supporting 64-bit systems.
|
|
|
|
|
2008-01-19 18:08:21 -04:00
|
|
|
|
|
|
|
.. cfunction:: PyObject* PyType_GenericNew(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|
|
|
|
|
|
|
.. versionadded:: 2.2
|
|
|
|
|
|
|
|
|
|
|
|
.. 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.
|
|
|
|
|
|
|
|
.. versionadded:: 2.2
|