Я создаю симуляцию, где мне нужно запустить цикл день/ночь. Вот функция, которая отвечает за цикл:Loop vs асинхронный таймер
def epoch():
print("it is now day")
time.sleep(varb.day_night_length)
print("it is now night")
time.sleep(varb.day_night_length)
(varb
это имя глобального модуля я сделал и значение, которое определяет продолжительность дня и ночи)
Вещь Я не хочу, чтобы эта функция была ответственной, когда программа останавливается (делая цикл бесполезным). Я не хочу, чтобы он был бесконечным, поэтому цикл while громоздкий. Я хочу, чтобы вы могли работать плавно, не останавливаясь на вводе пользователя. Есть простой способ сделать это?
EDIT: Я понял, что этот цикл бесполезен, если я не могу вернуть его состояние. Как я могу это сделать, не останавливая цикл?
EDIT: нашел то, что мне нужно. Для будущих людей, читающих это, вы должны использовать доходность. Он используется точно так же, как и возврат с помощью слова yield.
Спасибо всем!
Попробуйте 'threading' – AHuman
Или несколько процессов или синхронизированные сигналы. (Я категорически отказываюсь отмечать их как «код», когда это не так.) – tripleee
Я забыл упомянуть. Я также хотел бы иметь возможность «вернуть» состояние эпохи, не нарушая поток. @tripleee, как бы срабатывали срабатывания сигнализации? Это часть python? Или вторичная программа, которая мне понадобится? – unknown