Update advice about __module__ and __name__ and tp_name wrt. new types.

Add \refs to GC section that were XXXed out.
This commit is contained in:
Michael W. Hudson 2003-02-10 19:18:21 +00:00
parent bbe17f50eb
commit 1e71b04258
1 changed files with 17 additions and 13 deletions

View File

@ -424,17 +424,20 @@ Foo_Type.ob_type = &PyType_Type;
in module \module{M} in subpackage \module{Q} in package \module{P}
should have the \member{tp_name} initializer \code{"P.Q.M.T"}.
For dynamically allocated type objects, this may be just the type
name, if the module name is explicitly stored in the type dict as
the value for key \code{'__module__'}.
For dynamically allocated type objects, this should just be the type
name, and the module name explicitly stored in the type dict as the
value for key \code{'__module__'}.
If the tp_name field contains a dot, everything before the last dot
is made accessible as the \member{__module__} attribute, and
everything after the last dot is made accessible as the
\member{__name__} attribute. If no dot is present, the entire
\member{tp_name} field is made accessible as the \member{__name__}
attribute, and the \member{__module__} attribute is undefined
(unless explicitly set in the dictionary, as explained above).
For statically allocated type objects, the tp_name field should
contain a dot. Everything before the last dot is made accessible as
the \member{__module__} attribute, and everything after the last dot
is made accessible as the \member{__name__} attribute.
If no dot is present, the entire \member{tp_name} field is made
accessible as the \member{__name__} attribute, and the
\member{__module__} attribute is undefined (unless explicitly set in
the dictionary, as explained above). This means your type will be
impossible to pickle.
This field is not inherited by subtypes.
\end{cmemberdesc}
@ -882,8 +885,8 @@ The following three fields only exist if the
\begin{cmemberdesc}{PyTypeObject}{traverseproc}{tp_traverse}
An optional pointer to a traversal function for the garbage
collector. This is only used if the \constant{Py_TPFLAGS_HAVE_GC}
flag bit is set. More information in section XXX about garbage
collection.
flag bit is set. More information in section
\ref{supporting-cycle-detection} about garbage collection.
This field is inherited by subtypes together with \member{tp_clear}
and the \constant{Py_TPFLAGS_HAVE_GC} flag bit: the flag bit,
@ -895,7 +898,8 @@ The following three fields only exist if the
\begin{cmemberdesc}{PyTypeObject}{inquiry}{tp_clear}
An optional pointer to a clear function for the garbage collector.
This is only used if the \constant{Py_TPFLAGS_HAVE_GC} flag bit is
set. More information in section XXX about garbage collection.
set. More information in section
\ref{supporting-cycle-detection} about garbage collection.
This field is inherited by subtypes together with \member{tp_clear}
and the \constant{Py_TPFLAGS_HAVE_GC} flag bit: the flag bit,