gpt4 book ai didi

python - 为什么空列表在 Python 的 while 循环中评估为 False

转载 作者:太空宇宙 更新时间:2023-11-03 12:26:18 26 4
gpt4 key购买 nike

while 循环在空列表上评估为 False 时发生的过程是什么?

例如:

a=[1, 2, 3]
while a:
a.pop()

本质上,我想知道 while 循环正在检查列表对象的哪个方法或属性,以便决定是否终止。

最佳答案

循环和条件隐式使用 bool在他们所有的条件下。该过程明确记录在 "Truth Value Testing" 中文档的一部分。对于像列表这样的序列,这通常最终是对 __len__ 的检查。方法。

bool 的工作方式如下:首先它会尝试 __bool__方法。如果未实现 __bool__,它会检查 __len__ 是否为非零,如果不可能,则返回 True

与所有魔术方法查找一样,Python 只会查看类,而不会查看实例(参见 Special method lookup )。如果您的问题是关于如何改变行为,您将需要子类化。将单个替换方法分配给实例字典根本行不通。

关于python - 为什么空列表在 Python 的 while 循环中评估为 False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52876593/

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