2016-10-24 27 views
-2

对于生成器的next方法,我使用下面的示例。我试图找到next方法的Python文档,但失败了,谁能帮忙指出?Python生成器下一个方法

我想查找官方文档的目的是我想在下面的示例中查找所有形式的next方法和第二个参数None的含义。

slice = (x**2 for x in range(0,100)) 
first = next(slice, None) 
print first 
for item in slice: 
    print item 
+4

第二个参数是默认:https://docs.python.org/3/library/functions.html#next –

+2

'在内置功能帮助下一模块__builtin__: 未来(...) next(iterator [,default]) 返回迭代器中的下一项。如果给出默认值并且迭代器 用尽,则返回而不是提高StopIteration.' 这就是我从python interpeter'help(next)' –

+0

@ juanpa.arrivillaga,很好!如果您可以添加回复,我会将其标记为回复以惠及其他人。 –

回答

2

next()功能,所以它在functions documentation列出:

next(iterator[, default])
通过调用其__next__()方法检索从迭代器中的下一个项目。如果给出默认,则在迭代器耗尽时返回,否则返回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)。