[Python-ideas] Retrying EAFP without DRY

Stephen J. Turnbull stephen at xemacs.org
Mon Jan 23 05:34:44 CET 2012


Nick Coghlan writes:
 > On Mon, Jan 23, 2012 at 7:30 AM, Mike Meyer <mwm at mired.org> wrote:
 > > or wrapping a loop around the code when it wasn't really a loop.
 > 
 > You want to do the same thing more than once: that's a loop.

That's a question of point of view.  If "thing" is thought of as a
"try" (an operation that might fail), yes, he wants to do the same
thing a nondeterministic number of times, and in general, more than
once: it's a loop.  If "thing" is thought of as a "block" (which
isn't a try), then the "things" done with and without exception are
different: it's not a loop, it's a conditional.

Looking at his example "superficially" (I intend no deprecation by
that word, just a point of view in looking at the code), I have some
sympathy for Mike's claim that "it's not a loop and it violates DRY."
I "know what he means" (and I bet you do, too!)  However, when I try
to define that, even informally, I arrive at the paragraph above, and
I end up coming down on the side that you can't consistently claim
that "it's not a loop" *and* claim that "it violates DRY", in some
deeper sense.




More information about the Python-ideas mailing list