iterator question
grocery_stocker
cdalten at gmail.com
Thu Apr 2 18:17:43 EDT 2009
On Apr 2, 3:14 pm, grocery_stocker <cdal... at gmail.com> wrote:
> Give the following code..
>
> >>> class it:
>
> ... def __init__(self):
> ... self.count = -1
> ... def next(self):
> ... self.count +=1
> ... if self.count < 4:
> ... return self.count
> ... else:
> ... raise StopIteration
> ...>>> def some_func():
>
> ... return it()
> ...>>> iterator = some_func()
> >>> iterator
>
> <__main__.it instance at 0xb7f482ac>>>> some_func
>
> <function some_func at 0xb7f45e64>>>> some_func()
>
> <__main__.it instance at 0xb7f4862c>
>
> How come when I call some_func().next(), the counter doesn't get
> incremented?>>> some_func().next()
> 0
> >>> some_func().next()
> 0
> >>> some_func().next()
>
> 0
>
> But when I call iterator.next(), it does.
>
> >>> iterator.next()
> 0
> >>> iterator.next()
> 1
> >>> iterator.next()
> 2
> >>> iterator.next()
> 3
More information about the Python-list
mailing list