]> granicus.if.org Git - python/commitdiff
Clarify which dictionaries are updateable
authorRaymond Hettinger <python@rcn.com>
Sun, 2 Jun 2013 17:03:05 +0000 (10:03 -0700)
committerRaymond Hettinger <python@rcn.com>
Sun, 2 Jun 2013 17:03:05 +0000 (10:03 -0700)
by using the wording from the Py2.7 docs.

Doc/library/functions.rst

index c82e03f072ab00985a123c6e4b172ba601fa95ac..3059e178152d1f406e3a2472185eeacac9d709cd 100644 (file)
@@ -1355,14 +1355,18 @@ are always available.  They are listed here in alphabetical order.
 
 .. function:: vars([object])
 
-   Without an argument, act like :func:`locals`.
+   Return the :attr:`__dict__` attribute for a module, class, instance,
+   or any other object with a :attr:`__dict__` attribute.
 
-   With a module, class or class instance object as argument (or anything else that
-   has a :attr:`__dict__` attribute), return that attribute.
+   Objects such as modules and instances have an updateable :attr:`__dict__`
+   attribute; however, other objects may have write restrictions on their
+   :attr:`__dict__` attributes (for example, classes use a
+   dictproxy to prevent direct dictionary updates).
+
+   Without an argument, :func:`vars` acts like :func:`locals`.  Note, the
+   locals dictionary is only useful for reads since updates to the locals
+   dictionary are ignored.
 
-   .. note::
-      The returned dictionary should not be modified:
-      the effects on the corresponding symbol table are undefined. [#]_
 
 .. function:: zip(*iterables)
 
@@ -1481,7 +1485,3 @@ are always available.  They are listed here in alphabetical order.
 .. [#] Note that the parser only accepts the Unix-style end of line convention.
    If you are reading the code from a file, make sure to use newline conversion
    mode to convert Windows or Mac-style newlines.
-
-.. [#] In the current implementation, local variable bindings cannot normally be
-   affected this way, but variables retrieved from other scopes (such as modules)
-   can be.  This may change.