[pyar] Curiosidades del Python

SAn gringotumadre en gmail.com
Mar Oct 25 00:32:00 ART 2011


2011/10/25 Alejandro Santos <listas en alejolp.com>:
> 2011/10/25 Alejandro J. Cura <alecu en protocultura.net>:
>> On Mon, Oct 24, 2011 at 23:57, Alejandro Santos <listas en alejolp.com> wrote:
>>> 2011/10/24 Roberto Alsina <ralsina en netmanagers.com.ar>
>>>> Porque alguien querría hacer eso?
>>>
>>> Qué loco, yield es una expresión. Siempre creí que era un statement.
>>> Dando vueltas un rato por la doc de Python llegué al PEP 342. La idea
>>> es poder comunicarse ida y vuelta con el generator, no solo que el
>>> yield "dispare" valores sino tambien que los reciba de afuera.
>>>
>>
>> Y gracias a que yield devino expresión en Python 2.5 es que podemos
>> tener el defer.inlineCallbacks en twisted, sino no hubiera sido
>> posible.
>>
>
> Las corutinas son un "syntactic sugar" más. No te niego que son muy
> cómodas, pero decir que "no hubiera sido posible" es un poco fuerte.
> Siempre es posible implementar el método send manualmente, usando
> yield como statement.
>
> Una versión de "corutinas de bajo presupuesto" de mi ejemplo anterior
> sería algo así:
>
>>>> def f(sender):
> ...     yield None
> ...     a = sender[0]
> ...     sender[0] = None
> ...     print "a: ", a
> ...
>>>> sender = [None]
>>>> b = f(sender)
>>>> b.next()
>>>> sender[0] = "asd"
>>>> b.next()
> a:  asd
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
> StopIteration
>
> --

Ya que estamos en tema, hay una presentacion de David Beazley que está
genial sobre corutinas:
http://www.dabeaz.com/coroutines/



More information about the pyar mailing list