"Ben Sizer" <[EMAIL PROTECTED]> wrote: >> If you have no use case for this you are, as always, perfectly free to >> ignore it, as the majority of Python users may well choose to do. Your >> existing generators should continue to work. > > But do you have an example of such a use case? That's what I'm missing > here. Without ever having used proper coroutines elsewhere, I have no > real way to appreciate their benefits without a good example.
One example which is commonly given is to implement a web application using continuations. So in Python terms a session is handled by a generator which yields a form to be sent back to the user and the user's response is sent in to the request using the generator's send method. State would be maintained in the generator. Whether this actually works well in practice (and how you handle things like a back button on the forms) is another matter. So very roughly your web code might look like this: def checkout(basket): orderOk = False while not OrderOk: order = (yield OrderForm(basket)) address = (yield AddressForm()) payment = (yield PaymentForm(order.total)) confirmation = (yield ConfirmationForm(order, address, payment)) orderOk = confirmation.confirmed placeOrder(order, address, payment) yield OrderPlacedPage() -- http://mail.python.org/mailman/listinfo/python-list