]> granicus.if.org Git - python/commitdiff
Elaborate the explanation of different flavors of _* identifiers.
authorFred Drake <fdrake@acm.org>
Sat, 6 Sep 2003 03:50:07 +0000 (03:50 +0000)
committerFred Drake <fdrake@acm.org>
Sat, 6 Sep 2003 03:50:07 +0000 (03:50 +0000)
Fixes SF bug #520325.

Doc/ref/ref2.tex

index e0f1e49dfe8bd997132e6f91923b7115e85acf7b..76c5cc5a179d90814d8e235fdc43a86de4e80031 100644 (file)
@@ -320,25 +320,39 @@ In some future version of Python, the identifiers \code{as} and
 \subsection{Reserved classes of identifiers\label{id-classes}}
 
 Certain classes of identifiers (besides keywords) have special
-meanings.  These are:
+meanings.  These classes are identified by the patterns of leading and
+trailing underscore characters:
 
-\begin{tableiii}{l|l|l}{code}{Form}{Meaning}{Notes}
-\lineiii{_*}{Not imported by \samp{from \var{module} import *}}{(1)}
-\lineiii{__*__}{System-defined name}{}
-\lineiii{__*}{Class-private name mangling}{}
-\end{tableiii}
-
-See sections: \ref{import}, ``The \keyword{import} statement'';
-\ref{specialnames}, ``Special method names'';
-\ref{atom-identifiers}, ``Identifiers (Names)''.
+\begin{description}
 
-Note:
+\item[\code{_*}]
+  Not imported by \samp{from \var{module} import *}.  The special
+  identifier \samp{_} is used in the interactive interpreter to store
+  the result of the last evaluation; it is stored in the
+  \module{__builtin__} module.  When not in interactive mode, \samp{_}
+  has no special meaning and is not defined.
+  See section~\ref{import}, ``The \keyword{import} statement.''
+
+  \note{The name \samp{_} is often used in conjunction with
+  internationalization; refer to the documentation for the
+  \ulink{\module{gettext} module}{../lib/module-gettext.html} for more
+  information on this convention.}
+
+\item[\code{__*__}]
+  System-defined names.  These names are defined by the interpreter
+  and it's implementation (including the standard library);
+  applications should not expect to define additional names using this
+  convention.  The set of names of this class defined by Python may be
+  extended in future versions.
+  See section~\ref{specialnames}, ``Special method names.''
+
+\item[\code{__*}]
+  Class-private names.  Names in this category, when used within the
+  context of a class definition, are re-written to use a mangled for
+  to help avoid name clashes between ``private'' attributes of base
+  and derived classes.
+  See section~\ref{atom-identifiers}, ``Identifiers (Names).''
 
-\begin{description}
-\item[(1)] The special identifier \samp{_} is used in the interactive
-interpreter to store the result of the last evaluation; it is stored
-in the \module{__builtin__} module.  When not in interactive mode,
-\samp{_} has no special meaning and is not defined.
 \end{description}