# HG changeset patch # Parent 92f4b35d84d54c66cfb085969268b7ed6dbe4a34 Issue #nnnnn: Class __dict__ is only a mapping proxy diff -r 92f4b35d84d5 Doc/library/functions.rst --- a/Doc/library/functions.rst Thu Jan 12 11:53:20 2017 +0100 +++ b/Doc/library/functions.rst Thu Jan 12 11:52:48 2017 +0000 @@ -1469,8 +1469,8 @@ dynamic form of the :keyword:`class` statement. The *name* string is the class name and becomes the :attr:`~definition.__name__` attribute; the *bases* tuple itemizes the base classes and becomes the :attr:`~class.__bases__` - attribute; and the *dict* dictionary is the namespace containing definitions - for class body and is copied to a standard dictionary to become the + attribute; and the *dict* dictionary is copied to the namespace + containing definitions for the class body, which is referenced by the :attr:`~object.__dict__` attribute. For example, the following two statements create identical :class:`type` objects: diff -r 92f4b35d84d5 Doc/reference/datamodel.rst --- a/Doc/reference/datamodel.rst Thu Jan 12 11:53:20 2017 +0100 +++ b/Doc/reference/datamodel.rst Thu Jan 12 11:52:48 2017 +0000 @@ -786,8 +786,9 @@ single: __annotations__ (class attribute) Special attributes: :attr:`~definition.__name__` is the class name; :attr:`__module__` is - the module name in which the class was defined; :attr:`~object.__dict__` is the - dictionary containing the class's namespace; :attr:`~class.__bases__` is a + the module name in which the class was defined; :attr:`~object.__dict__` + gives a read-only :term:`mapping` representing + the class's namespace; :attr:`~class.__bases__` is a tuple containing the base classes, in the order of their occurrence in the base class list; :attr:`__doc__` is the class's documentation string, or ``None`` if undefined; :attr:`__annotations__` (optional) is a dictionary