Python - функция таймера обратного отсчета в качестве фонового процесса - PullRequest
0 голосов
/ 18 декабря 2018

Я новичок в Python, поэтому любая помощь, которую вы можете оказать, очень ценится.

У меня есть следующая функция:

import time

def countdown():
    my_timer = 10
    while my_timer > 0:
        time.sleep(5)
        my_timer -= 1

Я ищу во времясценария, вызовите эту функцию и отправьте ее в фоновый режим, чтобы остальная часть сценария могла выполняться - однако, во время выполнения сценария я хочу иметь возможность «достичь» и получить значение «my_timer» (очевидно,до того как оно достигнет 0).

Это не обязательно должна быть функция - до тех пор, пока я могу сдвинуть таймер в фоновый режим и продолжить работу с остальной частью сценария, одновременно имея возможность извлекать значение.

Я смотрел на подпроцесс и многопоточность, однако я изо всех сил пытаюсь разобраться с этим, и многие примеры, которые я нашел, имеют тенденцию быть довольно сложными.

Кто-нибудь может указать мне правильное направление?

Большое спасибо

1 Ответ

0 голосов
/ 20 декабря 2018

Скорее всего, есть лучший способ сделать это, но в конце я решил эту проблему, установив my_timer в качестве глобальной переменной, а затем запустив функцию с помощью потока:

import time
import threading

def countdown():
    global my_timer
    my_timer = 10
    while my_timer > 0:
        time.sleep(5)
        my_timer -= 1

countdown_thread = threading.Thread(target=countdown)
countdown_thread.start()
...