擅长:python、mysql、java
<p>当您使用生成器时,您可以通过调用<code>next</code>方法获得项,就像您在提供的代码段中所做的那样;但是,如果在耗尽/空的生成器上调用此方法,则会出现StopIteration错误</p>
<p>您可以通过如下方式将其包装到try/except块中来管理它</p>
<pre class="lang-py prettyprint-override"><code>try:
author = next(search_query)
except StopIteration:
print("Iterated over all authors")
else:
# do something with your author
pass
</code></pre>
<p>您还可以使用<code>for</code>循环迭代生成器;它将自动处理StopIteration错误,在生成器耗尽时退出</p>
<pre class="lang-py prettyprint-override"><code>for author in search_query:
# do something with your author
pass
</code></pre>