The Data Model section of the Python 3.2 documentation provides the following descriptions for the __int__ and __index__ methods:

object.__int__(self) Called to implement the built-in [function int() ]. Should return [an integer]. object.__index__(self) Called to implement operator.index() . Also called whenever Python needs an integer object (such as in slicing, or in the built-in bin() , hex() and oct() functions). Must return an integer.