Using an iterator in python?

前端 未结 4 946
[愿得一人]
[愿得一人] 2021-01-21 16:05

I have just learned about iterators in Python however I am having a hard time implementing them.

I am trying to write a class to so that this loop works:



        
4条回答
  •  孤独总比滥情好
    2021-01-21 16:22

    This will give you an iterator-like object which provides even or odd numbers. However, it won't satisfy your for loop semantics as it is not a true iterator.

    class NumberIterator(object):
        """Returns simple even/odd number iterators."""
        def __init__(self, current):
            self.current = current
        def next(self):
            self.current += 2
            return self.current
        @classmethod
        def getOddIterator(cls):
            return cls(-1) # start at 1
        @classmethod
        def getEvenIterator(cls):
            return cls(0) # start at 2
    
    
        odd_numbers = NumberIterator.getOddIterator()
        even_numbers = NumberIterator.getEvenIterator()
    
        odd_numbers.next() # Returns 1
        odd_numbers.next() # Returns 3
    

提交回复
热议问题