Это пример занятого ожидания .Эта программа застревает в этом цикле, постоянно проверяя, нажата ли какая-либо кнопка b
в self.buttons
.В этот момент он прервет ожидание занятости и вернет метку b
.
Так что, по сути, он не проверяет что-либо .Это просто ожидание, пока условие не будет выполнено.
При этом ожидание занятости считается антипаттерном .Если у вас есть контроль над этой кодовой базой (и это больше, чем просто тривиальное игрушечное приложение), подумайте над тем, можно ли проверить, можно ли проверить это условие как часть основного цикла большого приложения или объект предоставляет способ, которым это событие можетожидал (скажем, с обратным вызовом или в отдельном потоке).