On 4/24/05, Phillip J. Eby <[EMAIL PROTECTED]> wrote: > At 09:12 PM 4/24/05 -0600, Steven Bethard wrote: > >I guess it would be helpful to see example where the looping > >with-block is useful. > > Automatically retry an operation a set number of times before hard failure: > > with auto_retry(times=3): > do_something_that_might_fail() > > Process each row of a database query, skipping and logging those that cause > a processing error: > > with x,y,z = log_errors(db_query()): > do_something(x,y,z)
Thanks for the examples! If I understand your point here right, the examples that can't be easily rewritten by composing a single-execution with-block with a for-loop are examples where the number of iterations of the for-loop depends on the error handling of the with-block. Could you rewrite these with PEP 288 as something like: gen = auto_retry(times=3) for _ in gen: try: do_something_that_might_fail() except Exception, err: # Pretend "except Exception:" == "except:" gen.throw(err) gen = log_errors(db_query()) for x,y,z in gen: try: do_something(x,y,z) except Exception, err: # Pretend "except Exception:" == "except:" gen.throw(err) Obviously, the code is cleaner using the looping with-block. I'm just trying to make sure I understand your examples right. So assuming we had looping with-blocks, what would be the benefit of using a for-loop instead? Just efficiency? Or is there something that a for-loop could do that a with-block couldn't? STeVe -- You can wordify anything if you just verb it. --- Bucky Katt, Get Fuzzy _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com