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 _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor