【发布时间】:2016-08-05 18:52:27
【问题描述】:
这几乎可以肯定是因为我对生成器的工作原理一无所知,但我完全迷失了。
如果我以交互方式创建以下生成器:
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' 对象不可调用"
错误。
【问题讨论】:
标签: python python-3.x generator