#python
Вопрос:
Используя следующее, чтобы установить 30-секундный перерыв каждые 60 секунд, однако я не хочу, чтобы перерыв начинался сразу после первого запуска сценария. Как я могу добавить начальную задержку к первому перерыву?
def Breaktime():
threading.Timer(60, Breaktime).start()
print("Breaking for 30 seconds")
time.sleep(30)
Breaktime()
Комментарии:
1. Просто добавьте » time.sleep(30)’ перед вызовом функции.
2. Что вы подразумеваете под «30-секундным перерывом»? То, что у вас там есть, запускает новую нить и укладывает эту нить в сон, бесполезно. Это не повлияет на остальную часть вашей программы. Это то, что тебе было нужно? Если вы хотите, чтобы основной код приостановился, то вам нужно вставить
sleep
его в основной код.
Ответ №1:
Как насчет того, чтобы передать аргумент? Вот один из способов сделать это.
def Breaktime(break_time=0):
threading.Timer(60, Breaktime, kwargs={"break_time": 30}).start()
print("Breaking for 30 seconds")
time.sleep(break_time)
Breaktime()
Комментарии:
1. Остальная часть сценария продолжает выполняться, когда я это делаю, он печатает, что он ломается, но на самом деле не останавливается.