私は、イテレータオブジェクトを取得し、すべてのアイテムに対していくつかのロジックを実行するジェネレータ関数を持っています。これは、より大きな反復リストで実行されます。イテレータが使い果たされた後にイテレータが実行されないようにします
1
2
3
4
5
6
7
8
9
:それから、
利回り呼び出し元のコードに結果、それは
for
と
while
ループPythonのIDLEにこのコードを実行する
def func(it):
item = next(it)
item = item.execute()
yield item
it = iter(range(1, 10))
condition = True
while condition:
for item in func(it):
condition = item
print condition
を破ることができるようには、次のとハングを印刷します
ループを解除するにはCTRL + Cを押す必要があります。通常のの範囲(10)を使用すると、ループは値0で始まり、すぐに破棄され(condition=0
以降)、プロンプトが返されます。
私には何が欠けていますか?なぜ私のイテレータは使い果たされるのですか?
なぜdownvotes?.. – Vinny