while loop with the condition used in the body
Duncan Booth
duncan.booth at invalid.invalid
Wed Feb 24 05:31:48 EST 2010
Peter Otten <__peter__ at web.de> wrote:
> Ulrich Eckhardt wrote:
>
>> I'm looking for a way to write code similar to this C code:
>>
>> while(rq = get_request(..)) {
>> handle_request(rq);
>> }
>>
> Assuming get_request(...) is called with the same arguments on each
> iteration and uses None to signal that there is no more data:
>
> from functools import partial
>
> for rq in iter(partial(get_request, ...), None):
> handle_request(rq)
>
> Peter
and the next step on from this is to realise that the problem isn't how to
code the calls to get_request(), the problem is actually that get_request()
itself isn'ty Pythonic. Rewrite it as a generator, rename it to reflect
that it now generates a sequence of requests and the code becomes:
for rq in incoming_requests(...):
handle_request(rq)
--
Duncan Booth http://kupuguy.blogspot.com
More information about the Python-list
mailing list