-
-
Notifications
You must be signed in to change notification settings - Fork 33.5k
gh-141004: Document descriptor and dict proxy type objects #141803
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -21,12 +21,37 @@ | |
| .. c:function:: PyObject* PyDescr_NewMember(PyTypeObject *type, struct PyMemberDef *meth) | ||
| .. c:var:: PyTypeObject PyMemberDescr_Type | ||
| The type object for member descriptor objects created from | ||
| :c:type:`PyMemberDef` structures. These descriptors expose fields of a | ||
| C struct as attributes on a type, and correspond to ``member_descriptor`` | ||
| objects in the Python layer. | ||
| .. c:function:: PyObject* PyDescr_NewMethod(PyTypeObject *type, struct PyMethodDef *meth) | ||
| .. c:var:: PyTypeObject PyMethodDescr_Type | ||
| The type object for method descriptor objects created from | ||
| :c:type:`PyMethodDef` structures. These descriptors expose C functions as | ||
| methods on a type, and correspond to ``method_descriptor`` objects in the | ||
| Python layer. | ||
|
Comment on lines
+39
to
+40
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ditto. |
||
| .. c:function:: PyObject* PyDescr_NewWrapper(PyTypeObject *type, struct wrapperbase *wrapper, void *wrapped) | ||
| .. c:var:: PyTypeObject PyWrapperDescr_Type | ||
| The type object for wrapper descriptor objects created by | ||
| :c:func:`PyDescr_NewWrapper` and :c:func:`PyWrapper_New`. Wrapper | ||
| descriptors are used internally to expose special methods implemented | ||
| via wrapper structures, and appear in Python as ``wrapper_descriptor`` | ||
| objects. | ||
|
Comment on lines
+51
to
+52
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Use |
||
| .. c:function:: PyObject* PyDescr_NewClassMethod(PyTypeObject *type, PyMethodDef *method) | ||
|
|
@@ -55,6 +80,22 @@ | |
| :class:`classmethod` in the Python layer. | ||
| .. c:var:: PyTypeObject PyClassMethodDescr_Type | ||
| The type object for C-level class method descriptor objects. | ||
| This is the type of the descriptors created for :func:`classmethod` defined in C | ||
| extension types, and is the same object as :class:`classmethod` in the | ||
| Python layer. | ||
| .. c:var:: PyTypeObject PyGetSetDescr_Type | ||
| The type object for get/set descriptor objects created from | ||
| :c:type:`PyGetSetDef` structures. These descriptors implement attributes | ||
| whose value is computed by C getter and setter functions, and are used | ||
| for many built-in type attributes. | ||
|
Comment on lines
+91
to
+96
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This one is in the wrong section, so please move it. The "Built-in descriptors" section is for objects like |
||
| .. c:function:: PyObject *PyClassMethod_New(PyObject *callable) | ||
| Create a new :class:`classmethod` object wrapping *callable*. | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -43,6 +43,16 @@ Dictionary Objects | |
| prevent modification of the dictionary for non-dynamic class types. | ||
|
|
||
|
|
||
| .. c:var:: PyTypeObject PyDictProxy_Type | ||
|
|
||
| The type object for mapping proxy objects created by | ||
| :c:func:`PyDictProxy_New` and for the read-only ``__dict__`` attribute | ||
| of many built-in types. A :c:type:`PyDictProxy_Type` instance provides a | ||
| dynamic, read-only view of an underlying dictionary: changes to the | ||
| underlying dictionary are reflected in the proxy, but the proxy itself | ||
| does not support mutation operations. | ||
|
Comment on lines
+52
to
+53
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Could you point to |
||
|
|
||
|
|
||
| .. c:function:: void PyDict_Clear(PyObject *p) | ||
|
|
||
| Empty an existing dictionary of all key-value pairs. | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please link to
:class:`types.MemberDescriptorType`instead.