Python - запускать функцию каждую n секунду, пока истина - PullRequest
0 голосов
/ 03 апреля 2020

Я прочитал много постов, но не смог найти решение для работающего условия. Мой l oop к сожалению, никогда не останавливается. Кажется, что он не проверяет постоянно, если project.IsInProgress () = True

Я хочу проверять все, скажем, каждые две секунды, если мое утверждение все еще True, если оно больше не True I хочу прервать повторение и выполнить оператор print.

Я думаю, проблема в том, что он не запускает функцию каждые две секунды. Но я не знаю, как к этому подойти.

check_status = project.IsInProgress()

while check_status:
    print('Render in progress..')
    time.sleep(2)
else: 
    print('Render is finished')

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Попробуйте:

while project.IsInProgress():
    print('Render in progress..')
    time.sleep(2)
print('Render is finished')

Или, если вы предпочитаете:

check_status = project.IsInProgress()
while check_status:
    print('Render in progress..')
    time.sleep(2)
    check_status = project.IsInProgress()
print('Render is finished')
0 голосов
/ 03 апреля 2020

Ваш код проверяет текущее выполнение только один раз в начале кода, и если оно истинно, l oop будет длиться вечно. Чтобы проверить состояние для каждой итерации, попробуйте:

while project.IsInProgress() :
    print('Render in progress..')
    time.sleep(2)
else: 
    print('Render is finished')
...