簡體   English   中英

Python生成器的下一個方法

[英]Python generator next method

對於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

next()是一個函數 ,因此在函數文檔中列出:

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))生成(x**2 for x in range(0,100))生成器表達式保證至少具有一個結果。

PyCharm可以向您展示Python標准庫函數的文檔; 只需使用快速文檔功能( CTRL-Q )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM