Pythonはyieldとsendの使い方を使います
1955 ワード
まず、一般的な計算フィボナッチの列のコードを見てみましょう.
基本版:
結果:
yield版を使用するには:
結果
send版を使用するには:
結果
yield fromの使用方法:
結果
基本版:
def old_fib(n):
res = [0] * n
index = 0
a = 0
b = 1
while index
結果:
---------- ----------
1
1
2
3
5
8
13
21
34
55
yield版を使用するには:
def fib(n):
index = 0
a = 0
b = 1
while index
結果
---------- yield----------
1
1
2
3
5
8
13
21
34
55
send版を使用するには:
import random
import time
def stupid_fib(n):
index = 0
a = 0
b = 1
while index
結果
---------- yield send----------
1
0.3726817450087525
1
0.25331633079776733
2
0.09393476884999097
3
0.3392211006197199
5
0.33262903389842274
8
0.41414110149962935
13
0.21604414711985792
21
0.025865695087244345
34
0.28991156481780744
55
0.263892230023429
yield fromの使用方法:
import random
import time
def stupid_fib(n):
index = 0
a = 0
b = 1
while index
結果
---------- yield from send----------
stupid_fib()
1
0.28898040867944874
1
0.46000191699833454
2
0.021769106639172697
3
0.20333080975901485
5
0.19305777011503833
8
0.09847006007411069
13
0.3013770267669208
21
0.13223476217553276
34
0.44592478930164614
55
0.0881971642022118