On Feb 2, 9:48 pm, Jeff Schwab <[EMAIL PROTECTED]> wrote: > How [EMAIL PROTECTED] 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." > > 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"- Hide quoted text - > > - Show quoted text -
Here's something similar, in a decorator: def iterative(fn): def times_(n): i = 0 while i < n: fn() i += 1 fn.times = times_ return fn @iterative def aFunction(): print "this is a function" aFunction.times(3) Prints: this is a function this is a function this is a function But this still seems like a lot of work to avoid "for x in range(n):". -- Paul -- http://mail.python.org/mailman/listinfo/python-list