add introspection to range objects (closes #9896)

Patch by Daniel Urban.
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index f9af3d8..3cf5335 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -1042,7 +1042,9 @@
    ...]``.  If *step* is positive, the last element is the largest ``start + i *
    step`` less than *stop*; if *step* is negative, the last element is the
    smallest ``start + i * step`` greater than *stop*.  *step* must not be zero
-   (or else :exc:`ValueError` is raised).  Example:
+   (or else :exc:`ValueError` is raised).  Range objects have read-only data
+   attributes :attr:`start`, :attr:`stop` and :attr:`step` which return the
+   argument values (or their default).  Example:
 
       >>> list(range(10))
       [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
@@ -1100,6 +1102,9 @@
       sequence of values they define (instead of comparing based on
       object identity).
 
+   .. versionadded:: 3.3
+      The :attr:`start`, :attr:`stop` and :attr:`step` attributes.
+
 
 .. function:: repr(object)