栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Python中“消费”是什么意思?在迭代器中?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Python中“消费”是什么意思?在迭代器中?

关于2。

实际上,我们必须区分两种情况。

记得格雷格·休吉尔(Greg Hewgill)写道:

“迭代器”是负责创建元素序列的单个对象。此序列可能是现有列表的元素,也可能是已计算的内容,例如质数或π的十进制数字。

第一种情况

迭代器计算刺激时必须产生的对象;也就是说,在调用之前不存在产生的对象

next()
。因此,如果为该对象分配了名称,则该对象将保留下来。如果不存在,则该对象将在一定时间内不绑定到名称空间中的名称而存在,然后它将在内存中消失,也就是说,它占用的位将在以后或早用于另一个对象。

第二种情况

是当迭代器返回属于列表,元组,字典等的先前存在的对象时。在这种情况下,由a产生的每个对象

next()
已经具有名称的绑定。然后,如果在对象“弹出”到迭代器时为其分配了新名称,则将有两个名称绑定到该对象。而且,如果未将对象分配给名称,则它将继续仅绑定到一个名称,这足以使对象保持活动状态。

共同点:

每次通过迭代器的调用生成对象时,如果没有为其分配名称,则操作的唯一结果是迭代器已被“消耗”。用这种方式可以说,即使在生成对象之后没有永久性后果,它也会发生使迭代器内部发生跟踪的事情。

有人谈到在给对象分配名称时也消耗了迭代器,但是,我不想混淆。

注意:

实际上,如果某个对象预先存在于列表中,则可能是它没有名称。但是列表包含它“包含”的每个对象的引用…实际上,列表并不“包含”对象,而仅引用对象…远远超出了我想说的范围。

关于3

您不应该编写3: “将变量分配给…时”

变量 一词在Python中是一个陷阱,因为它含义不明确。从其他语言的常识来看,Python中没有 变量 ,也就是说,
“内存的定界部分,其值可以更改”。 只有对象。 变量 这个词通常被用来表示一个 标识符 。因此,将其称为“ 标识符 ”或“
名称” 是一种更好的做法。这避免了混乱。

关于4

我认为仅一次调用就不可能从迭代器中获得两次收益

next()



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647860.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号