We're back after a server migration that caused effbot.org to fall over a bit harder than expected. Expect some glitches.

Reserved classes of identifiers

Certain classes of identifiers (besides keywords) have special meanings. These classes are identified by the patterns of leading and trailing underscore characters:


_name (single leading underscore)

Not imported by “from module import *”.

Also the special identifier “_” is used in the interactive interpreter to store the result of the last evaluation; it is stored in the __builtin__ module. When not in interactive mode, “_” has no special meaning and is not defined. See import.

Note: The name “_” is often used in program code in conjunction with internationalization; refer to the documentation for the gettext module for more information on this convention.


__name__ (double leading and trailing underscores)

System-defined names. These names are defined by the interpreter and its 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 special-method-names.


__name (double leading underscores)

Class-private names. Names in this category, when used within the context of a class definition, are re-written to use a mangled form to help avoid name clashes between private attributes of base and derived classes. See identifiers.