diff -r cce04851d2e2 Doc/library/functions.rst --- a/Doc/library/functions.rst Thu Jun 02 15:15:12 2016 -0400 +++ b/Doc/library/functions.rst Thu Jun 02 16:41:02 2016 -0700 @@ -1449,8 +1449,9 @@ class name and becomes the :attr:`~class.__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 becomes the :attr:`~object.__dict__` attribute. For - example, the following two statements create identical :class:`type` objects: + for class body and is copied to a standard dictionary to become the + :attr:`~object.__dict__` attribute. For example, the following two + statements create identical :class:`type` objects: >>> class X: ... a = 1 diff -r cce04851d2e2 Doc/reference/datamodel.rst --- a/Doc/reference/datamodel.rst Thu Jun 02 15:15:12 2016 -0400 +++ b/Doc/reference/datamodel.rst Thu Jun 02 16:41:02 2016 -0700 @@ -1735,6 +1735,11 @@ included in the class definition (if any) and the resulting object is bound in the local namespace as the defined class. +When a new class is created by ``type.__new__``, the object provided as the +namespace parameter is copied to a standard Python dictionary and the original +object is discarded. The new copy becomes the :attr:`~object.__dict__` attribute +of the class object. + .. seealso:: :pep:`3135` - New super