Избежать бесконечного цикла
Есть функция. Если её вызвать, то она может уйти в бесконечный цикл. Как сделать так, чтобы спустя минуту без результата функция возвращала None?
Ответы (2 шт):
Если речь идет про неизменную сложность алгоритма в цикле, то можно поставить селектор на количество итераций, равное по скорости нужному промежутку времени. Допустим, одна итерация протекает за Х
микросекунд. То есть через 60000000/Х
пройдёт примерно минута.
Если же сложность изменяется от итерации к итерации, можно в конце цикла поставить счетчик, рассчитывающий время выполнения в зависимости от условий данной итерации. При достижении счетчиком вышеупомянутого значения - выйти из цикла.
Чечтно говорю, в питоне не силен, но может сработать.
Консольная программка-идея:
import os
import time
def check_result(ok):
if not ok: result = None
else: result = True
print(result)
return result
while True:
ok = False
time.sleep(60)
# Тут код проверки требуемого результата, если она успешна, ok = True
check_result(ok)
os.system("pause")