ジェネレータ
ジェネレータとは ▲
ジェネレータはイテレータの一種であり、要素を取り出そうとするたびに処理を行い、要素をジェネレートするタイプのものである
イテレータについては別ページにて記載するが、簡単に説明すると要素を反復して取り出すことのできるインターフェースのことである
Python のジェネレータは、関数内にyiledを使用することでジェネレータとして認識される
具体的な書き方について以下に記載する
# Pythonは関数の中に yield があるとジェネレータとして判断する
def greeting():
yield 'Good morning'
yield 'Good afternoon'
yield 'Good night'
# ジェネレータは for文 で回すことができる
for g in greeting():
print(g)
# next()を使って一個ずつステップを進めることができる
# ただし最後のステップを超えるとエラーが発生するので注意
g = greeting()
print(next(g)) # Good morning
print("@@@@@")
print(next(g)) # Good afternoon
print("@@@@@")
print(next(g)) # Good night
print("@@@@@")
print(next(g)) # StopIteration
目次