A class can implement certain operations that are invoked by special
syntax (such as arithmetic operations or subscripting and slicing) by
defining methods with special names. For instance, if a class defines
a method named __getitem__(), and x
is an instance of
this class, then x[i]
is equivalent to
x.__getitem__(i)
. (The reverse is not true -- if x
is
a list object, x.__getitem__(i)
is not equivalent to
x[i]
.) Except where mentioned, attempts to execute an
operation raise an exception when no appropriate method is defined.