Python 2.x return values for cmp
python, python-2.x
Solution
No, the docs explicitly say that yalues can be anything. The only value that is specified is `0` if the compared objects are equal. Don't trust the fact that you only see the values `-1`, `0` and `1`, that's an implementation detail and could change*, so always check for `<` and `>` 0.
*: note - actually, it won't really have a chance to change, since `cmp` has gone away in pyhton3. use rich comparison instead.
Problem
Quoted from the docs: `cmp(x, y)` Compare the two objects x and y and return an integer according to the outcome. The return value is negative if `x < y`, zero if `x == y` and strictly positive if `x > y`. I was under the assumption that the return values are always `-1`, `0`, and `1` but the docs don't explicitly say that, only mentioning zero and positive/negative return value. Are there any situations when the return value of `cmp(x,y)` is not `-1`, `0`, or `1`?