Подробное объяснение:
1️⃣any(...) получает генератор, а значит элементы вычисляются по одному, а не все сразу.
2️⃣check(0) печатает 0 и возвращает False.
3️⃣check(1) печатает 1 и тоже возвращает False.
4️⃣check(2) печатает 2 и возвращает True, после чего any() сразу завершает работу.
5️⃣check(3) уже не вызывается, и итоговый вывод: 0 1 2 True.
Почему это важно
Это полезно для производительности и для контроля побочных эффектов. Если функция дорогая или что-то печатает, пишет в лог, делает запросы, короткое замыкание может сильно изменить поведение программы.
Post #4727
820
- ✍ 3