[Tutor] generator object
Alan Gauld
alan.gauld at yahoo.co.uk
Wed Aug 31 18:24:52 EDT 2016
On 31/08/16 08:56, Alan Gauld via Tutor wrote:
> A generator function can return any kind of object including
> basic types like numbers, bool etc.In addition, a generator
> function yields values which can also be of any type.
Hmmm.
After reading Steven's response I played around a bit.
While a generator function can indeed have a return
value in it I'm not sure how one would use it.
I tried:
def gen(x):
if x > 0: return 42
else: yield x
Then I tried
x = gen(2)
and
x = list(2)
But neither show any evidence of the return value.
Can anyone provide a valid use-case for this feature?
It definitely doesn't work the way I thought it did...
But I've never needed to use return in a generator
so never tried it before!
What I expected/hoped it would do was act like a
yield but also exit the function. No such luck.
I can't even recall where I read about using returns
in generator functions and what rationale was
provided. It doesn't seem to be specifically
discussed in the python docs. The only use I
can see is to terminate the function immediately
but the return value appears to disappear in smoke...
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos
More information about the Tutor
mailing list