[Python-ideas] Retrying EAFP without DRY (original) (raw)

Bruce Leban bruce at leapyear.org
Sat Jan 21 02:40:15 CET 2012


On Fri, Jan 20, 2012 at 4:36 PM, Mike Meyer <mwm at mired.org> wrote:

A single new keyword/clause, "retry". It has the same syntax as an "except" clause, can be used anywhere "except" can be used, and can be intermingled with them in the same try statement. There's probably a better syntax, but this is easy to describe.

The behavior change from except is that instead of exiting the "try" statement when the "retry" clause ends, it restarts the try clause. In python, this code: try: # try block except: # except block retry: # retry block else: # else block finally: # finally block

Can you write this in terms of current Python code? I don't understand exactly when a retry block would be executed. In Eiffel, retry is a statement, not a clause. Analogous to that would be:

try: # block except: # block if condition: retry

The equivalent of this in current Python is

while True: try: # block except: # block if condition: continue # retry break

FWIW, if this turns out to be a good idea, an alternate spelling that would not require a new keyword is 'try again'.

--- Bruce Follow me: http://www.twitter.com/Vroo http://www.vroospeak.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-ideas/attachments/20120120/e067c101/attachment.html>



More information about the Python-ideas mailing list