Python はじめました:yield 文

《前の記事|記事一覧|次の記事》
Python.use(better)


Python はじめました

yield 文



最高の教訓は過去の失敗から得ることができる
過去の過ちは、未来の叡智なのだ
デイル・ターナー

《関連記事》

yield 文〈Python 3.0 版〉

関数の本体に yield 文を記述すると、その関数は「ジェネレータ関数」になります。

■ 事例
def fib(n):
    a,b = 0,1
    while b<n:
        yield b
        a,b = b,a+b

% python3.0 -i ex30.py
>>> g = fib(10); g

>>> for e in g: print(e,end=" ")
... 
1 1 2 3 5 8

for 文とともにジェネレータ g を利用すると、フィボナッチ数 e が順に得られます。

ファイル〈Python 2.x 版〉

Python 3.0 版〉と同様です。

def fib(n):
    a,b = 0,1
    while b<n:
        yield b
        a,b = b,a+b

% python2.6 -i ex26.py 
>>> g = fib(10); g

>>> for e in g: print e,
... 
1 1 2 3 5 8

Last updated♪09/03/10