gpt4 book ai didi

python - 如何让生成器/迭代器在耗尽时评估为 False?

转载 作者:太空狗 更新时间:2023-10-29 16:56:06 26 4
gpt4 key购买 nike

Python 中的其他空对象评估为 False——我怎样才能让迭代器/生成器也这样做?

最佳答案

Guido 不希望生成器和迭代器以这种方式运行。

对象默认为真。仅当它们定义返回零的 __len__ 或返回 False 的 __nonzero__(后者在 Py3.x 中称为 __bool__)时,它们才能为假。

您可以将这些方法之一添加到自定义迭代器,但这不符合 Guido 的意图。他拒绝将 __len__ 添加到即将到来的长度已知的迭代器中。这就是我们如何获得 __length_hint__ 的。

因此,判断迭代器是否为空的唯一方法是对其调用 next() 并查看它是否引发 StopIteration

在 ASPN 上,我相信有一些食谱将这种技术用于先行包装器。如果获取了一个值,则会将其保存到即将到来的 next() 调用中。

关于python - 如何让生成器/迭代器在耗尽时评估为 False?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7976269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com