Comparison operations are supported by all objects. They all have the
same priority (which is higher than that of the Boolean operations).
Comparisons can be chained arbitrarily; for example,
y <= z is equivalent to
x < y and
y <= z, except that y is evaluated only once (but
in both cases z is not evaluated at all when
y is found to be false).
This table summarizes the comparison operations:
||strictly less than|
||less than or equal|
||strictly greater than|
||greater than or equal|
||negated object identity|
!=are alternate spellings for the same operator. (I couldn't choose between ABC and C! :-)
!=is the preferred spelling;
Objects of different types, except different numeric types, never compare equal; such objects are ordered consistently but arbitrarily (so that sorting a heterogeneous array yields a consistent result). Furthermore, some types (for example, file objects) support only a degenerate notion of comparison where any two objects of that type are unequal. Again, such objects are ordered arbitrarily but consistently.
Instances of a class normally compare as non-equal unless the class defines the __cmp__() method. Refer to the Python Reference Manual for information on the use of this method to effect object comparisons.
Implementation note: Objects of different types except numbers are ordered by their type names; objects of the same types that don't support proper comparison are ordered by their address.
Two more operations with the same syntactic priority, "in" and "not in" , are supported only by sequence types (below).
See About this document... for information on suggesting changes.