]> granicus.if.org Git - python/commitdiff
Describe the new semantics for setting and deleting a function's
authorBarry Warsaw <barry@python.org>
Tue, 14 Aug 2001 18:22:24 +0000 (18:22 +0000)
committerBarry Warsaw <barry@python.org>
Tue, 14 Aug 2001 18:22:24 +0000 (18:22 +0000)
__dict__ attribute.  Deleting it, or setting it to a non-dictionary
result in a TypeError.  Note that getting it the first time magically
initializes it to an empty dict so that func.__dict__ will always
appear to be a dictionary (never None).

Closes SF bug #446645.

Doc/lib/libstdtypes.tex

index d478f316081a33fb908a603c4cf3bb6a96b820c4..4949e600fc9436d33c5606b132794ca931824f51 100644 (file)
@@ -1047,19 +1047,14 @@ Function objects also support getting and setting arbitrary
 attributes, which can be used to, e.g. attach metadata to functions.
 Regular attribute dot-notation is used to get and set such
 attributes. \emph{Note that the current implementation only supports
-function attributes on functions written in Python.  Function
-attributes on built-ins may be supported in the future.}
+function attributes on user-defined functions.  Function attributes on
+built-in functions may be supported in the future.}
 
 Functions have another special attribute \code{\var{f}.__dict__}
 (a.k.a. \code{\var{f}.func_dict}) which contains the namespace used to
-support function attributes.  \code{__dict__} can be accessed
-directly, set to a dictionary object, or \code{None}.  It can also be
-deleted (but the following two lines are equivalent):
-
-\begin{verbatim}
-del func.__dict__
-func.__dict__ = None
-\end{verbatim}
+support function attributes.  \code{__dict__} and \code{func_dict} can
+be accessed directly or set to a dictionary object.  A function's
+dictionary cannot be deleted.
 
 \subsubsection{Methods \label{typesmethods}}
 \obindex{method}