[Python-Dev] printing xrange objects

Fred L. Drake, Jr. fdrake@beopen.com
Thu, 3 Aug 2000 11:48:28 -0400 (EDT)


Thomas Wouters writes:
 > Sorry, my bad. I just did 'x', and assumed it called repr(). I guess my
 > newbiehood shows in that I thought 'print x' always called 'str(x)'. Like I

  That's the evil beauty of tp_print -- nobody really expects it
because most types don't implement it (and don't need to); I seem to
recall Guido saying it was a performance issue for certain types, but
don't recall the specifics.

 > Why not remove the first and last argument, if they are respectively 0 and 1?

  I agree!  In fact, always removing the last argument if it == 1 is a
good idea as well.  Here's the output from the current patch:

>>> xrange(2)
xrange(2)
>>> xrange(2, 4)
xrange(2, 4)
>>> x = xrange(10, 4, -1)
>>> x
xrange(10, 4, -1)
>>> x.tolist()
[10, 9, 8, 7, 6, 5]
>>> x*3
(xrange(10, 4, -1) * 3)



  -Fred

-- 
Fred L. Drake, Jr.  <fdrake at beopen.com>
BeOpen PythonLabs Team Member