mirror of
https://github.com/python/cpython.git
synced 2025-11-15 00:00:00 +00:00
Issue #18287: PyType_Ready() now checks that tp_name is not NULL.
Original patch by Niklas Koep.
This commit is contained in:
commit
e45b7c09ec
5 changed files with 15 additions and 2 deletions
|
|
@ -116,7 +116,8 @@ type objects) *must* have the :attr:`ob_size` field.
|
|||
If no dot is present, the entire :c:member:`~PyTypeObject.tp_name` field is made accessible as the
|
||||
:attr:`~definition.__name__` attribute, and the :attr:`__module__` attribute is undefined
|
||||
(unless explicitly set in the dictionary, as explained above). This means your
|
||||
type will be impossible to pickle.
|
||||
type will be impossible to pickle. Additionally, it will not be listed in
|
||||
module documentations created with pydoc.
|
||||
|
||||
This field is not inherited by subtypes.
|
||||
|
||||
|
|
|
|||
|
|
@ -129,7 +129,9 @@ our objects and in some error messages, for example::
|
|||
|
||||
Note that the name is a dotted name that includes both the module name and the
|
||||
name of the type within the module. The module in this case is :mod:`noddy` and
|
||||
the type is :class:`Noddy`, so we set the type name to :class:`noddy.Noddy`. ::
|
||||
the type is :class:`Noddy`, so we set the type name to :class:`noddy.Noddy`.
|
||||
One side effect of using an undotted name is that the pydoc documentation tool
|
||||
will not list the new type in the module documentation. ::
|
||||
|
||||
sizeof(noddy_NoddyObject), /* tp_basicsize */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue