<type>documentation</type>
<domain>browser</domain>
<id>display-filters</id>
<title>Display Filters</title>
<date>$Date$</date>
<version>$Revision$</version>
<product>per+</product>

The display can be filtered from the ``Options`` menu according to `Symbol Type and Origin
<ref:browser/symbol-types>`__, and also according to the symbol's intended scope of use,
which is defined as follows:

**Public** symbols are accessible to any user of a module or instance. These are names
that have no leading underscores, such as ``Print`` or ``kMaxListLength``.

**Semi-Private** symbols are intended for use only within related modules or from
sub-classes or closely related classes. These are names that have one leading underscore,
such as ``_NotifyError`` or ``_gMaxCount``. Python doesn't enforce usage of these symbols,
except to omit them in ``from mod import *``.  However, they are helpful in writing clean,
well-structured code and are recommended in `PEP 8
<https://www.python.org/dev/peps/pep-0008/#designing-for-inheritance>`__.

**Private** symbols are intended to be private to a module or class. These are names that
have two leading underscores, such as ``__ConstructNameList`` or ``__id_seed``. Python
omits these in ``from mod import *``.  When used in classes, they cannot be accessed
from outside of the methods of the class where they are defined. See `PEP 8
<https://www.python.org/dev/peps/pep-0008/#designing-for-inheritance>`__ for details.

