У меня есть функция, которая вызывается при загрузке страницы, но ее также можно вызвать с помощью кнопки. Когда страница загружается, вызывается функция - она просто ждет 15 секунд, а затем завершается. С другой стороны, если пользователь нажимает кнопку до истечения 15 секунд, функция вызывается снова и немедленно завершается. Можно ли нажать эту кнопку, чтобы остановить первый вызов функции?
#the first execution is called with the default value for the "chosen" argument.
#the second one (on button press) is always called with a non-zero value for "chosen"
def background_calculation(self, chosen=0):
if chosen == 0:
time.sleep(15)
pos = np.random.randint(1, 54)
return pos
else:
pos = chosen
#I would like to stop the first function call from continuing to execute here.
return pos
Контекст: background_calculation
вызывается при открытии потока. У пользователя есть 15 секунд, чтобы сделать выбор, и если они этого не сделают, поток должен закрываться со случайным значением для pos
. С другой стороны, если пользователь делает выбор до истечения 15 секунд, функция вызывается, и поток немедленно завершается с возвращением выбранного пользователем значения. В настоящее время функция выполняется дважды и возвращает два значения: выбранное пользователем и случайно созданное.
Что я пробовал: я пробовал использовать индикатор / фиктивную переменную, которая указывает на последнее значение «selected ". По истечении 15 секунд функция проверит, указывает ли фиктивная переменная на 0 (это означает, что выбранный параметр никогда не изменялся), и остановится, если это не так.