Kaydet (Commit) bed6891c authored tarafından Berker Peksag's avatar Berker Peksag

Issue #23710: Update PyObject_HEAD documentation

Since PEP 3123, PyObject_HEAD only has one field named ob_base.
Users now need to use the Py_TYPE macro instead of self->ob_type.

Initial patch by Ammar Askar.
üst 9de620e9
...@@ -52,11 +52,15 @@ The first bit that will be new is:: ...@@ -52,11 +52,15 @@ The first bit that will be new is::
} noddy_NoddyObject; } noddy_NoddyObject;
This is what a Noddy object will contain---in this case, nothing more than what This is what a Noddy object will contain---in this case, nothing more than what
every Python object contains---a refcount and a pointer to a type object. every Python object contains---a field called ``ob_base`` of type
These are the fields the ``PyObject_HEAD`` macro brings in. The reason for the :c:type:`PyObject`. :c:type:`PyObject` in turn, contains an ``ob_refcnt``
macro is to standardize the layout and to enable special debugging fields in field and a pointer to a type object. These can be accessed using the macros
debug builds. Note that there is no semicolon after the ``PyObject_HEAD`` :c:macro:`Py_REFCNT` and :c:macro:`Py_TYPE` respectively. These are the fields
macro; one is included in the macro definition. Be wary of adding one by the :c:macro:`PyObject_HEAD` macro brings in. The reason for the macro is to
standardize the layout and to enable special debugging fields in debug builds.
Note that there is no semicolon after the :c:macro:`PyObject_HEAD` macro;
one is included in the macro definition. Be wary of adding one by
accident; it's easy to do from habit, and your compiler might not complain, accident; it's easy to do from habit, and your compiler might not complain,
but someone else's probably will! (On Windows, MSVC is known to call this an but someone else's probably will! (On Windows, MSVC is known to call this an
error and refuse to compile the code.) error and refuse to compile the code.)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment