basic questions on cmp, < and sort

Ben Finney bignose+hates-spam at benfinney.id.au
Wed Oct 25 22:44:10 EDT 2006


Schüle Daniel <uval at rz.uni-karlsruhe.de> writes:

> Hello,
>
> first question
>
> In [117]: cmp("ABC",['A','B','C'])
> Out[117]: 1
>
> against what part of the list is the string "ABC" compared?

Why "part"? There are two objects; they are compared to each other.

How this comparison is implemented is a matter handled by the class of
each object.

> second question
>
> In [119]: class X(object):
>     .....:     pass
>     .....:
>
> In [120]: X() < X()
> [... differing results ...]
>
> class X does not implement < and cmp
> what is this comparision is based on?

Classes can implement various functions to allow comparisons to work:

    <URL:http://docs.python.org/ref/customization.html#l2h-187>

In the absence of those, the comparison's result is (I believe)
implementation-dependent -- which means, "don't rely on any particular
behaviour".

> third question
>
> sort([[1,2,3],["ABC"],['Z','A'], X(), 4)

    >>> sort([[1,2,3],["ABC"],['Z','A'], X(), 4)
      File "<stdin>", line 1
        sort([[1,2,3],["ABC"],['Z','A'], X(), 4)
                                               ^
    SyntaxError: invalid syntax

Care to give an actual example?

-- 
 \        "I went to the hardware store and bought some used paint. It |
  `\                   was in the shape of a house."  -- Steven Wright |
_o__)                                                                  |
Ben Finney




More information about the Python-list mailing list