パフォーマンスの点でどちらが優れているかを知りたい: 状態を持つ「通常の」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()
同じ出力が生成されます。
性能的にはどちらが優れていますか?ありがとう、