@Mark Harrison的回答:
for x in iter(next_, END): ....
以下是Python文档的摘录:
iter(o[, sentinel])
返回一个迭代器对象. ...(snip)...如果给出了第二个参数
sentinel
,,那么它o
必须是一个可调用的对象.在这种情况下创建的迭代器将调用o
每个对其next()
方法的调用没有参数 ; 如果返回的值等于sentinel
,StopIteration
则会引发,否则返回该值.
这取决于你想做什么.为了尽可能地匹配您的示例,我将使下一个生成器并迭代它:
def next(): for num in range(10): yield num for x in next(): print x