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

为什么在使用__getitem__进行迭代时调用__len__而不使用结果?[重复]

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

为什么在使用__getitem__进行迭代时调用__len__而不使用结果?[重复]

PEP
424中
有一些指示:一种公开长度提示的方法:

CPython当前在几种类型上定义了 length_hint 方法,例如各种迭代器。然后,各种其他功能(例如list)将使用此方法来根据
length_hint 返回的估计值对列表进行 大小调整 。然后,没有大小且因此不应定义 len的类型 可以定义
length_hint ,以允许估计或计算大小(例如许多迭代器)。

和:

能够根据由 length_hint
估计的预期大小来预分配列表可能是一项重大的优化。观察到CPython比PyPy运行某些代码快,完全是因为存在这种优化。

因此,似乎要进行

list
调用
__len__
才能预先分配列表。之后,您的列表可以根据需要增加。



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

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

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