[Python-ideas] Implement comparison operators for range objects
Antoine Pitrou
solipsis at pitrou.net
Thu Oct 13 16:58:16 CEST 2011
On Wed, 12 Oct 2011 20:18:50 -0700
Guido van Rossum <guido at python.org> wrote:
>
> The open question so far is: How do we want our ranges to work? My
> intuition is weak, but says: range(0) != range(1, 1) != range(1, 1, 2)
> and range(0, 10, 2) != range(0, 11, 2); all because the arguments
> (after filling in the defaults) are different, and those arguments can
> come out using the start, stop, step attributes (once we implement
> them :-).
My intuition is contrary, but I think it comes down to: what is the use
case for comparison ranges?
> PS. An (unrelated) oddity with range and Decimal:
>
> >>> range(Decimal(10))
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> TypeError: 'Decimal' object cannot be interpreted as an integer
> >>> range(int(Decimal(10)))
> range(0, 10)
> >>>
>
> So int() knows something that range() doesn't. :-)
Same as floats:
>>> int(1.0)
1
>>> range(1.0, 2, 1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'float' object cannot be interpreted as an integer
I thought it was by design?
Regards
Antoine.
More information about the Python-ideas
mailing list