Python：イテレータクラスでインデックスを返したい


Python2.7でイテレータクラスを作りました。  
インデックスを返すようにしたかったため、タプルで返すようにしたのですが、インデックスが不要な場合、エラーとなってしまいます。

これをエラーなく、インデックスが不要な場合にも対応する方法を共有します。

[code]

    class ItTest(object):
    
        def __init__(self):
            self.list = [10, 20, 30]
    
        def __iter__(self):
            self.index = 0
            self.max = len(self.list)
            return self
    
        def next(self):
            if self.index >= self.max:
                raise StopIteration
            output_index = self.index
            output = self.list[self.index]
            self.index += 1
            return output_index, output
    
    
    def main():
        # OK
        for index, x in ItTest():
            print(x+1)
        # エラー
        for x in ItTest():
            print(x+1)
    
[/code]




単純に`enumerate`を使えばよかったです。  
リスト等にしか使用できないと思い込みました･･･

[code]

    class ItTest(object):
    
        def __init__(self):
            self.list = [10, 20, 30]
    
        def __iter__(self):
            self.index = 0
            self.max = len(self.list)
            return self
    
        def next(self):
            if self.index >= self.max:
                raise StopIteration
            output = self.list[self.index]
            self.index += 1
            return output # indexは返さない
    
    
    def main():
        # OK
        for index, x in enumerate(ItTest()):
            print(x+1)
        # OK
        for x in ItTest():
            print(x+1)
    
[/code]




単純に`enumerate`を使えばよかったです。  
リスト等にしか使用できないと思い込みました･･･

[code]

    class ItTest(object):
    
        def __init__(self):
            self.list = [10, 20, 30]
    
        def __iter__(self):
            self.index = 0
            self.max = len(self.list)
            return self
    
        def next(self):
            if self.index >= self.max:
                raise StopIteration
            output = self.list[self.index]
            self.index += 1
            return output # indexは返さない
    
    
    def main():
        # OK
        for index, x in enumerate(ItTest()):
            print(x+1)
        # OK
        for x in ItTest():
            print(x+1)
    
[/code]

