From 5246f66e5e2ac8dc04871f7060235e1d70767458 Mon Sep 17 00:00:00 2001 From: Ezio Melotti Date: Sun, 20 Jan 2013 16:34:21 +0200 Subject: [PATCH] #16557: update functional howto -- "return value" is valid after PEP 380. Initial patch by Ramchandra Apte. --- Doc/howto/functional.rst | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Doc/howto/functional.rst b/Doc/howto/functional.rst index b621a84f56f..d241f1a953a 100644 --- a/Doc/howto/functional.rst +++ b/Doc/howto/functional.rst @@ -479,13 +479,10 @@ Here's a sample usage of the ``generate_ints()`` generator: You could equally write ``for i in generate_ints(5)``, or ``a,b,c = generate_ints(3)``. -Inside a generator function, the ``return`` statement can only be used without a -value, and signals the end of the procession of values; after executing a -``return`` the generator cannot return any further values. ``return`` with a -value, such as ``return 5``, is a syntax error inside a generator function. The -end of the generator's results can also be indicated by raising -:exc:`StopIteration` manually, or by just letting the flow of execution fall off -the bottom of the function. +Inside a generator function, ``return value`` is semantically equivalent to +``raise StopIteration(value)``. If no value is returned or the bottom of the +function is reached, the procession of values ends and the generator cannot +return any further values. You could achieve the effect of generators manually by writing your own class and storing all the local variables of the generator as instance variables. For