\chapter{Built-in Types, Exceptions and Functions}

\nodename{Built-in Objects}

Names for built-in exceptions and functions are found in a separate
symbol table.  This table is searched last when the interpreter looks
up the meaning of a name, so local and global
user-defined names can override built-in names.  Built-in types are
described together here for easy reference.%
\footnote{Most descriptions sorely lack explanations of the exceptions
	that may be raised --- this will be fixed in a future version of
	this manual.}
\indexii{built-in}{types}
\indexii{built-in}{exceptions}
\indexii{built-in}{functions}
\index{symbol table}

The tables in this chapter document the priorities of operators by
listing them in order of ascending priority (within a table) and
grouping operators that have the same priority in the same box.
Binary operators of the same priority group from left to right.
(Unary operators group from right to left, but there you have no real
choice.)  See Chapter 5 of the \emph{Python Reference Manual} for the
complete picture on operator priorities.
