Issue #16148: Small improvements and cleanup.  Added version information
to docs.
diff --git a/Doc/c-api/object.rst b/Doc/c-api/object.rst
index 8458fe8..e4769b3 100644
--- a/Doc/c-api/object.rst
+++ b/Doc/c-api/object.rst
@@ -349,6 +349,8 @@
    returning the default value. On error ``-1`` is returned. This is the
    equivalent to the Python expression ``operator.length_hint(o, default)``.
 
+   .. versionadded:: 3.4
+
 .. c:function:: PyObject* PyObject_GetItem(PyObject *o, PyObject *key)
 
    Return element of *o* corresponding to the object *key* or *NULL* on failure.
diff --git a/Doc/library/operator.rst b/Doc/library/operator.rst
index 93f33ff..1cd87fc 100644
--- a/Doc/library/operator.rst
+++ b/Doc/library/operator.rst
@@ -241,6 +241,8 @@
    actual length, then an estimate using ``__length_hint__``, and finally
    returning the default value.
 
+   .. versionadded:: 3.4
+
 The :mod:`operator` module also defines tools for generalized attribute and item
 lookups.  These are useful for making fast field extractors as arguments for
 :func:`map`, :func:`sorted`, :meth:`itertools.groupby`, or other functions that
diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst
index 6b23d3f..111ad8b 100644
--- a/Doc/reference/datamodel.rst
+++ b/Doc/reference/datamodel.rst
@@ -1805,6 +1805,15 @@
    considered to be false in a Boolean context.
 
 
+.. method:: object.__length_hint__(self)
+
+   Called to implement ``operator.length_hint``. Should return an estimated
+   length for the object (which may be greater or less than the actual length).
+   The length must be an integer ``>=`` 0. This method is purely an
+   optimization and is never required for correctness.
+
+   .. versionadded:: 3.4
+
 .. note::
 
    Slicing is done exclusively with the following three methods.  A call like ::