問題一覧に戻る
上級高度な機能
問題100: イテレータプロトコル
イテレータプロトコルは、__iter__と__next__メソッドを実装することで、独自のイテレータを作成する仕組みです。__iter__はイテレータ自身を返し、__next__は次の値を返すか、終了時にStopIterationを発生させます。これによりforループで使用できるカスタムオブジェクトを作成できます。
# イテレータプロトコル
class Counter:
def __init__(self, max_count):
self.max_count = max_count
self.count = 0
def (self):
return self
def (self):
if self.count < self.max_count:
self.count += 1
return self.count
raise
# イテレータを使用
counter = Counter(3)
for num in counter:
print(num)