对于生成器的next
方法,我使用下面的示例。我试图找到next
方法的Python文档,但是失败了,任何人都可以帮忙指出吗?
我想找到官方文档的目的是我想在下面的示例中查找所有形式的next
方法和第二个参数None
的含义。
slice = (x**2 for x in range(0,100))
first = next(slice, None)
print first
for item in slice:
print item
答案 0 :(得分:2)
next()
是功能,因此它列在functions documentation中:
next(iterator[, default])
通过调用其__next__()
方法从迭代器中检索下一个项。如果给出 default ,则在迭代器耗尽时返回,否则引发StopIteration
。
然后第二个参数是默认值,如果iterator.__next__()
引发StopIteration
则返回。如果未设置默认值,则不会捕获StopIteration
异常但会传播:
>>> def gen():
... yield 1
...
>>> g = gen()
>>> next(g, 'default')
1
>>> next(g, 'default')
'default'
>>> g = gen()
>>> next(g, 'default')
1
>>> next(g) # no default
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
对于您提供的具体示例,默认值相当多,因为(x**2 for x in range(0,100))
生成器表达式保证至少有一个结果。
PyCharm可以向您展示Python标准库函数的文档;只需使用快速文档功能( CTRL-Q )。