【发布时间】:2011-07-08 10:20:39
【问题描述】:
我已经使用 Python 工作了几个月了,我突然想到,我经常忽略那些乍看之下无法理解的词汇,而是试图了解一个想法的要点。现在回想起来,我仍然对consume这个词的含义感到困惑。我最初的兴趣来自对迭代器的解释,它谈到了正在消耗的迭代器的值。但是,环顾四周,这在 Python 词典中似乎并不常见。或者是吗?在这里挖掘发现主要是对 Web 服务的引用,以及关于如何隐藏函数的这个或那个结果的一两个讨论。
我想,把我的无知分解成几个基点:
- “消费”在不同的 Python 语境中会做不同的事情吗?
- 数据在被消费时会发生什么情况,例如
iter()中的数据? - 当一个变量被分配给迭代器的结果(据称是消耗的数据)时,它是否不再属于迭代器?
- 能否在一次调用迭代器时从迭代器对象中使用多个值?
我希望这有点道理。请注意,这不是针对任何特定需求;我只是感到困惑,超出了合理的合理性。
编辑:还有一件事...迭代值(使用next() 调用时)是否保留在内存中?
【问题讨论】:
-
我的意思是,使用了 consume 这个词。一个链接会很好(我发现的唯一参考是在
itertools文档中)。 -
doughellmann.com/PyMOTW/itertools --- "由于由 tee() 创建的新迭代器共享输入,你不应该再使用原来的迭代器。如果你确实使用来自原始输入的值,新的迭代器不会产生这些值:"
-
C# WPF 文章中也有很多“消耗”。