Python 実行回数をカウントする。ジェネレータ関数の使い方

 本記事では、ジェネレータ関数の記述例を載せました。例えば、あるプログラムの途中で、ある関数が実行された回数を数えたい場合があったとします。この時、同時にこのジェネレータ関数オブジェクトを実行することで実現できます。(もしくは、実行したい内容に組み込んでも良い)

下記はジェネレータ関数の例です。while文があって無限ループです。しかし、ジェネレータ関数では、実行時にyieldでpを返して一時停止します。

# ジェネレータ関数の定義
def mycounter_func():
    p = 0
    while True:
        p += 1
        yield p

以降は、ジェネレータ関数の使い方です。
下記のようにして、一旦、ジェネレータオブジェクトを生成します。

# ジェネレータオブジェクトの生成
mycounter = mycounter_func()
print(mycounter)

print出力してみると、下記のようにジェネレータオブジェクトであるとわかります。

f:id:HK29:20211106235324p:plain

次に、下記は実行例です。next関数で実行します。

# ネクスト関数でジェネレータオブジェクトを実行
print(next(mycounter))

1を出力します。

# もう一度実行
print(next(mycounter))

2を出力します。

# 回したい数だけ実行
for _ in range(5):
    val = next(mycounter)
    print(val)

f:id:HK29:20211106235535p:plain

を出力します。

以上

<広告>