Does anyone else use this little idiom?
Jeff Schwab
jeff at schwabcenter.com
Sat Feb 2 22:48:28 EST 2008
How miller.paul.w at gmail.com wrote:
> Ruby has a neat little convenience when writing loops where you don't
> care about the loop index: you just do n.times do { ... some
> code ... } where n is an integer representing how many times you want
> to execute "some code."
>
> In Python, the direct translation of this is a for loop. When the
> index doesn't matter to me, I tend to write it as:
>
> for _ in xrange (1,n):
> some code
>
> An alternative way of indicating that you don't care about the loop
> index would be
>
> for dummy in xrange (1,n):
> some code
>
> But I like using _ because it's only 1 character and communicates well
> the idea "I don't care about this variable."
>
> The only potential disadvantages I can see are threefold:
>
> 1. It might be a little jarring to people not used to it. I do admit
> it looks pretty strange at first.
>
> 2. The variable _ has special meaning at the interactive interpreter
> prompt. There may be some confusion because of this.
>
> 5. Five is right out. (ob Holy Grail reference, of course. :-)
>
> So, I guess I'm wondering if anyone else uses a similar idiom and if
> there are any downsides to it that I'm not aw
Would something like this be acceptable? It still requires a loop
variable, plus an extra line of code per loop, plus a one-time class
definition (and import into each client module), and it's probably
slower than "for dummy in range." The syntax might be more inuitive
than "dummy" or "_" in a for loop, though.
class Go:
def __init__(self, count):
self.count = count
def again(self):
if self.count <= 0:
return False
self.count -= 1
return True
go = Go(3)
while go.again():
print "hello"
More information about the Python-list
mailing list