これは、ジェネレータがどのように動作するのか私の知らなかった結果ですが、私は完全に失われています。なぜこのPythonジェネレータ関数が正しく1回だけ実行されていますか?
私は対話的に次の発電機を作成した場合:
def neighborhood(iterable):
iterator = iter(iterable)
prev = None
item = next(iterator)
for post in iterator:
yield (prev,item,post)
prev = item
item = post
yield (prev,item,None)
をして、テストし、それが好き:
for prev,item,next in neighborhood([1,2,3,4,5]):
print(prev, item, next)
それが生成する:予想通り
None 1 2
1 2 3
2 3 4
3 4 5
4 5 None
。私は再びそれを実行、またはいずれかの方法でそれを再定義しようとすると、私は
を得る「NoneType」オブジェクトは、」
エラー呼び出すことはできません。
はい。だから馬鹿だ。 – WildGunman