gpt4 book ai didi

python - while循环python问题

转载 作者:行者123 更新时间:2023-11-28 20:11:05 25 4
gpt4 key购买 nike

以下是特定类中的一个方法,它在 python 中创建了一个简单的计算器。它旨在等待按钮被点击并返回该按钮的标签:

def getButton(self):
while True:
p = self.win.getMouse()
for b in self.buttons:
if b.clicked(p):
return b.getLabel()

self.buttons 变量是所有计算器按钮的列表。 Clicked 是一种检查按钮是否已被单击的方法。我不明白的是“while True” bool 值 while 循环。它测试什么是真或假?在什么情况下它不是真的?

最佳答案

这是一个 busy wait 的例子.该程序将陷入此循环,永远检查是否单击了 self.buttons 中的任何按钮 b。此时,它将从繁忙的等待中中断以返回 b 的标签。

所以,从本质上讲,它不是在测试任何东西。它只是在等待一个条件被满足。

也就是说,繁忙的等待被认为是 anti-pattern .如果您可以控制此代码库(这不仅仅是一个微不足道的玩具应用程序),请考虑研究是否可以将此条件作为更大的应用程序主循环的一部分进行检查,或者该对象是否提供了一种可以处理该事件的方式等待(例如,通过回调,或在单独的线程中)。

关于python - while循环python问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5234471/

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