A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://mail.python.org/pipermail/python-dev/2005-October/057044.html below:

[Python-Dev] PEP 342 suggestion: start(), __call__() and unwind_call() methods

[Python-Dev] PEP 342 suggestion: start(), __call__() and unwind_call() methodsNick Coghlan ncoghlan at gmail.com
Fri Oct 7 14:43:07 CEST 2005
Nick Coghlan wrote:
> It ends up looking like this:
> 
>          def __call__(self, value=None):
>              """ Call a generator as a coroutine
> 
>              Returns the first argument supplied to StopIteration or
>              None if no argument was supplied.
>              Raises ContinueIteration with the value yielded as the
>              argument if the generator yields a value
>              """
>              if not self.__started:
>                  raise RuntimeError("Coroutine not started")
>              try:
>                  if exc:
>                      yield_val = self.throw(value, *exc)
>                  else:
>                      yield_val = self.send(value)
>              except (StopIteration), ex:
>                  if ex.args:
>                      return args[0]
>              else:
>                  raise ContinueIteration(yield_val)

Oops, I didn't finish fixing this after I added unwind_call(). Try this 
version instead:

           def __call__(self, value=None):
               """ Call a generator as a coroutine

               Returns the first argument supplied to StopIteration or
               None if no argument was supplied.
               Raises ContinueIteration with the value yielded as the
               argument if the generator yields a value
               """
               try:
                   yield_val = self.send(value)
               except (StopIteration), ex:
                   if ex.args:
                       return args[0]
               else:
                   raise ContinueIteration(yield_val)

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://boredomandlaziness.blogspot.com
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4