Descriptor Objects

“Descriptors” are objects that describe some attribute of an object. They arefound in the dictionary of type objects.

PyTypeObjectPyProperty_Type
Part of theStable ABI.

The type object for the built-in descriptor types.

PyObject*PyDescr_NewGetSet(PyTypeObject*type,structPyGetSetDef*getset)
Return value: New reference. Part of theStable ABI.
PyObject*PyDescr_NewMember(PyTypeObject*type,structPyMemberDef*meth)
Return value: New reference. Part of theStable ABI.
PyTypeObjectPyMemberDescr_Type
Part of theStable ABI.

The type object for member descriptor objects created fromPyMemberDef structures. These descriptors expose fields of aC struct as attributes on a type, and correspondtotypes.MemberDescriptorType objects in Python.

PyTypeObjectPyGetSetDescr_Type
Part of theStable ABI.

The type object for get/set descriptor objects created fromPyGetSetDef structures. These descriptors implement attributeswhose value is computed by C getter and setter functions, and are usedfor many built-in type attributes.

PyObject*PyDescr_NewMethod(PyTypeObject*type,structPyMethodDef*meth)
Return value: New reference. Part of theStable ABI.
PyTypeObjectPyMethodDescr_Type
Part of theStable ABI.

The type object for method descriptor objects created fromPyMethodDef structures. These descriptors expose C functions asmethods on a type, and correspond totypes.MemberDescriptorTypeobjects in Python.

PyObject*PyDescr_NewWrapper(PyTypeObject*type,structwrapperbase*wrapper,void*wrapped)
Return value: New reference.
PyTypeObjectPyWrapperDescr_Type
Part of theStable ABI.

The type object for wrapper descriptor objects created byPyDescr_NewWrapper() andPyWrapper_New(). Wrapperdescriptors are used internally to expose special methods implementedvia wrapper structures, and appear in Python astypes.WrapperDescriptorType objects.

PyObject*PyDescr_NewClassMethod(PyTypeObject*type,PyMethodDef*method)
Return value: New reference. Part of theStable ABI.
intPyDescr_IsData(PyObject*descr)

Return non-zero if the descriptor objectdescr describes a data attribute, or0 if it describes a method.descr must be a descriptor object; there isno error checking.

PyObject*PyWrapper_New(PyObject*,PyObject*)
Return value: New reference. Part of theStable ABI.

Built-in descriptors

PyTypeObjectPySuper_Type
Part of theStable ABI.

The type object for super objects. This is the same object assuper in the Python layer.

PyTypeObjectPyClassMethod_Type

The type of class method objects. This is the same object asclassmethod in the Python layer.

PyTypeObjectPyClassMethodDescr_Type
Part of theStable ABI.

The type object for C-level class method descriptor objects.This is the type of the descriptors created forclassmethod() defined inC extension types, and is the same object asclassmethodin Python.

PyObject*PyClassMethod_New(PyObject*callable)

Create a newclassmethod object wrappingcallable.callable must be a callable object and must not beNULL.

On success, this function returns astrong reference to a new classmethod descriptor. On failure, this function returnsNULL with anexception set.

PyTypeObjectPyStaticMethod_Type

The type of static method objects. This is the same object asstaticmethod in the Python layer.

PyObject*PyStaticMethod_New(PyObject*callable)

Create a newstaticmethod object wrappingcallable.callable must be a callable object and must not beNULL.

On success, this function returns astrong reference to a new staticmethod descriptor. On failure, this function returnsNULL with anexception set.