[Python-Dev] Chaining try statements: eltry? (original) (raw)

Jack Diederich jack at performancedrivers.com
Fri Jul 8 00:54:41 CEST 2005


On Thu, Jul 07, 2005 at 03:03:35PM -0400, Phillip J. Eby wrote:

At 02:48 PM 7/7/2005 -0400, Tim Peters wrote: >[Guido, on {for,while}/else] >... > > The question remains whether Python would be easier to learn without > > them. And if so, the question would remain whether that's offset by > > their utility for experienced developers. All hard to assess > > impartially! > >That's what I'm here for. I like loop "else" clauses, but have to >admit that (a) I rarely use them; (b) most of the time I use them, my >control flow is on the way to becoming so convoluted that I'm going to >rewrite the whole function soon anyway;

Interesting; I usually intentionally write "else" clauses intending to clarify the code. That is, I often use it in cases where it's not strictly necessary, e.g.: for thing in something: if blah: return thing else: return None Because to me this clarifies that 'return None' is what happens if the loop "fails".

I use else similarly, for defensive programming.

for (thing) in searchlist: if (matches(thing)): keeper = thing break else: raise ValueError("No thing matches()")

I can't say I use it for much else, if I really want a default I do found = None for (thing) in searchlist: if (matches(thing)): found = None break

That could end with 'else: found = None' to assign a default but I like the default to come first for readability.

-Jack



More information about the Python-Dev mailing list