diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst index a9a16d3d9a5..3f1a30da7c1 100644 --- a/Doc/library/exceptions.rst +++ b/Doc/library/exceptions.rst @@ -261,6 +261,9 @@ The following exceptions are the exceptions that are usually raised. raised, and the value returned by the function is used as the :attr:`value` parameter to the constructor of the exception. + .. versionchanged:: 3.3 + Added ``value`` attribute and the ability for generator functions to + use it to return a value. .. exception:: SyntaxError diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst index 7da54a2ddf2..97461627bfd 100644 --- a/Doc/reference/expressions.rst +++ b/Doc/reference/expressions.rst @@ -355,7 +355,7 @@ resumed before it is finalized (by reaching a zero reference count or by being garbage collected), the generator-iterator's :meth:`close` method will be called, allowing any pending :keyword:`finally` clauses to execute. -When ``yield from expression`` is used, it treats the supplied expression as +When ``yield from `` is used, it treats the supplied expression as a subiterator. All values produced by that subiterator are passed directly to the caller of the current generator's methods. Any values passed in with :meth:`send` and any exceptions passed in with :meth:`throw` are passed to @@ -369,6 +369,9 @@ the yield expression. It can be either set explicitly when raising :exc:`StopIteration`, or automatically when the sub-iterator is a generator (by returning a value from the sub-generator). + .. versionchanged:: 3.3 + Added ``yield from `` to delegate control flow to a subiterator + The parentheses can be omitted when the :keyword:`yield` expression is the sole expression on the right hand side of an assignment statement. diff --git a/Doc/reference/simple_stmts.rst b/Doc/reference/simple_stmts.rst index d98b829c97d..3bd08942c01 100644 --- a/Doc/reference/simple_stmts.rst +++ b/Doc/reference/simple_stmts.rst @@ -470,10 +470,13 @@ resumed before it is finalized (by reaching a zero reference count or by being garbage collected), the generator-iterator's :meth:`close` method will be called, allowing any pending :keyword:`finally` clauses to execute. -When ``yield from expression`` is used, it treats the supplied expression as +When ``yield from `` is used, it treats the supplied expression as a subiterator, producing values from it until the underlying iterator is exhausted. + .. versionchanged:: 3.3 + Added ``yield from `` to delegate control flow to a subiterator + For full details of :keyword:`yield` semantics, refer to the :ref:`yieldexpr` section.