2

パフォーマンスの点でどちらが優れているかを知りたい: 状態を持つ「通常の」python 関数、またはジェネレーター。同様の質問とは異なり、問題を特定するために最も単純化された関数を使用しています。

通常の機能:

 >>> def counter_reg():
         if not hasattr(count_regular,"c"):
             count_regular.c = -1
         count_regular.c +=1
         return count_regular.c

ジェネレーター関数:

>>> def counter_gen():
    c = 0
    while True:
        yield c
        c += 1

>>> counter = counter_gen()
>>> counter = counter.next

どちらの場合も、 and を呼び出すcounter()counter_reg()同じ出力が生成されます。

性能的にはどちらが優れていますか?ありがとう、

4

1 に答える 1