Re: PEP 342 misunderstanding

Discussion in 'Python' started by Jean-Paul Calderone, Oct 8, 2006.

  1. On 8 Oct 2006 12:33:02 -0700, wrote:
    >So I've been reading up on all the new stuff in PEP 342, and trying to
    >understand its potential. So I'm starting with a few simple examples to
    >see if they work as expected, and find they dont.
    >
    >I'm basically trying to do the following:
    >
    >for x in range(10):
    > print x*2
    >
    >but coroutine-style.
    >
    >My initial try was:
    >
    >>>> def printrange():

    >... for x in range(10):
    >... x = yield x
    >... print x
    >...
    >>>> g = printrange()
    >>>> for x in g:

    >... g.send(x*2)
    >...


    Try this instead:

    >>> x = None
    >>> while 1:

    ... if x is None:
    ... send = None
    ... else:
    ... send = x * 2
    ... try:
    ... x = g.send(send)
    ... except StopIteration:
    ... break
    ...
    0
    2
    4
    6
    8
    10
    12
    14
    16
    18


    >
    >Now, I was expecting that to be 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20.
    >
    >What am I missing here?


    Your code was calling next and send, when it should have only been calling
    send.

    Jean-Paul
    Jean-Paul Calderone, Oct 8, 2006
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Kurt Bonne
    Replies:
    1
    Views:
    530
    John Timney \(Microsoft MVP\)
    Aug 8, 2003
  2. Christoph Becker-Freyseng

    PEP for new modules (I read PEP 2)

    Christoph Becker-Freyseng, Jan 15, 2004, in forum: Python
    Replies:
    3
    Views:
    369
    Gerrit Holl
    Jan 16, 2004
  3. Replies:
    1
    Views:
    456
    Fredrik Lundh
    Oct 8, 2006
  4. Ville Vainio
    Replies:
    6
    Views:
    359
    Ville M. Vainio
    Jul 26, 2009
  5. Gunnar
    Replies:
    3
    Views:
    262
    Robert Klemme
    May 3, 2005
Loading...

Share This Page