mirror of
https://github.com/python/cpython.git
synced 2025-09-27 10:50:04 +00:00
#970783: document PyObject_Generic[GS]etAttr.
This commit is contained in:
parent
268d85d1e8
commit
aa118103d7
1 changed files with 21 additions and 0 deletions
|
@ -42,6 +42,16 @@ Object Protocol
|
||||||
expression ``o.attr_name``.
|
expression ``o.attr_name``.
|
||||||
|
|
||||||
|
|
||||||
|
.. cfunction:: PyObject* PyObject_GenericGetAttr(PyObject *o, PyObject *name)
|
||||||
|
|
||||||
|
Generic attribute getter function that is meant to be put into a type
|
||||||
|
object's ``tp_getattro`` slot. It looks for a descriptor in the dictionary
|
||||||
|
of classes in the object's MRO as well as an attribute in the object's
|
||||||
|
:attr:`__dict__` (if present). As outlined in :ref:`descriptors`, data
|
||||||
|
descriptors take preference over instance attributes, while non-data
|
||||||
|
descriptors don't. Otherwise, an :exc:`AttributeError` is raised.
|
||||||
|
|
||||||
|
|
||||||
.. cfunction:: int PyObject_SetAttr(PyObject *o, PyObject *attr_name, PyObject *v)
|
.. cfunction:: int PyObject_SetAttr(PyObject *o, PyObject *attr_name, PyObject *v)
|
||||||
|
|
||||||
Set the value of the attribute named *attr_name*, for object *o*, to the value
|
Set the value of the attribute named *attr_name*, for object *o*, to the value
|
||||||
|
@ -56,6 +66,17 @@ Object Protocol
|
||||||
``o.attr_name = v``.
|
``o.attr_name = v``.
|
||||||
|
|
||||||
|
|
||||||
|
.. cfunction:: int PyObject_GenericSetAttr(PyObject *o, PyObject *name, PyObject
|
||||||
|
*value)
|
||||||
|
|
||||||
|
Generic attribute setter function that is meant to be put into a type
|
||||||
|
object's ``tp_setattro`` slot. It looks for a data descriptor in the
|
||||||
|
dictionary of classes in the object's MRO, and if found it takes preference
|
||||||
|
over setting the attribute in the instance dictionary. Otherwise, the
|
||||||
|
attribute is set in the object's :attr:`__dict__` (if present). Otherwise,
|
||||||
|
an :exc:`AttributeError` is raised and ``-1`` is returned.
|
||||||
|
|
||||||
|
|
||||||
.. cfunction:: int PyObject_DelAttr(PyObject *o, PyObject *attr_name)
|
.. cfunction:: int PyObject_DelAttr(PyObject *o, PyObject *attr_name)
|
||||||
|
|
||||||
Delete attribute named *attr_name*, for object *o*. Returns ``-1`` on failure.
|
Delete attribute named *attr_name*, for object *o*. Returns ``-1`` on failure.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue