<p>我知道<code>iterator</code>是<code>iterable</code>,但只有一次通过。在</p>
<p>例如,<code>itertools</code>中的许多函数都将<code>iterable</code>作为参数,例如<code>islice</code>。如果我看到api显示<code>iterable</code>,我是否可以总是传入<code>iterator</code>?在</p>
<p>正如@delnan指出的:</p>
<blockquote>
<p>Although every <code>iterator</code> is an <code>iterable</code>, some people (outside the
core team) say "iterable" when they mean "something that can be
iterated several times with with the same results". Some code in the
wild claims to work on <code>iterables</code> but actually doesn't work with
<code>iterators</code>.</p>
</blockquote>
<p>这正是我所关心的。支持多路径的<code>iterable</code>有名字吗?像C中的<code>IEnumerable</code>?在</p>
<p>如果我要构建一个声称支持<code>iterable</code>的函数,那么实际上也支持<code>iterator</code>是最佳实践吗?在</p>