yield expression

Colin J. Williams cjw at ncf.ca
Tue Feb 26 17:34:14 CET 2013

On 24/02/2013 7:36 PM, Ziliang Chen wrote:
> Hi folks,
> When I am trying to understand "yield" expression in Python2.6, I did the following coding. I have difficulty understanding why "val" will be "None" ? What's happening under the hood? It seems to me very time the counter resumes to execute, it will assign "count" to "val", so "val" should NOT be "None" all the time.
> Thanks !
> code snippet:
> ----
>   def counter(start_at=0):
>       count = start_at
>       while True:
>           val = (yield count)
>           if val is not None:
>               count = val
>           else:
>               print 'val is None'
>               count += 1

Perhaps it's becaoue (teild count) is a statement.  Statements do not 
return a value.

Colin W.

More information about the Python-list mailing list