Я хочу знать, как вызвать функцию через определенное время. Я пробовал time.sleep(), но это останавливает весь script. Я хочу, чтобы script продолжался, но после того, как пользователь вызовет функцию и запустит другую script в то же время
Задержки времени Python
Ответ 1
Посмотрите threading.Timer
. Он запускает вашу функцию в новом потоке.
from threading import Timer
def hello():
print "hello, world"
t = Timer(30.0, hello)
t.start() # after 30 seconds, "hello, world" will be printed
Ответ 2
Если вы хотите, чтобы функция вызывалась через некоторое время и не останавливала ваш script, вы по сути дела имеете дело с потоковым кодом. Если вы хотите установить вызываемую функцию и не беспокоиться об этом, вам нужно либо явно использовать многопоточность - например, em Mark Byers answr, либо использовать структуру кодирования, в которой есть основной цикл, который выполняет функцию диспетчеризации для вы - как скрученные, qt, gtk, pyglet и многие другие. Любой из них потребует, чтобы вы переписали свой код, чтобы он работал из основного цикла структуры.
Это либо это, либо запись какого-либо основного цикла из события, проверяющего себя на вашем коде - В общем, если единственное, что вы хотите, это вызовы с одной функцией, threading.Timer - это способ сделать это. Если вы хотите использовать эти временные вызовы для фактической петли программы, как это обычно делается с помощью javascript setTimeout, вам лучше выбрать одну из фреймворков кодирования, перечисленных выше, и рефакторинг кода, чтобы воспользоваться им.
Ответ 3
просто сделайте time.sleep (количество) или pygame.time()
Ответ 4
import threading
def time_demo():
threading.Timer(5.0, time_demo()).start()
print 'Hello this is time demo function'
time_demo()