Это почти наверняка результат моего незнания того, как работают генераторы, но я полностью потерян.Почему эта функция генератора питона работает правильно только один раз?
Если я интерактивно создавать следующий генератор:
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» не вызываемую»
ошибка.
Dang it. Да. Настолько глуп. – WildGunman