\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}
\bifuncindex{type}

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 Python Reference Manual for the
complete picture on operator priorities.
