Как лучше всего реализовать бесконечное l oop в Python, чтобы заданная функция запускалась снова и снова, пока пользователь не нажмет клавишу? Я могу придумать пару способов сделать это, один из которых включает Ctrl- C, а другой включает многопоточность: оба кажутся чрезвычайно хакерскими и оставляют у меня ощущение, что я упускаю что-то ослепляюще очевидное.
Вот минимальный рабочий пример метода Ctrl- C :
def run():
my_object = MyClass()
my_object.lay_the_table()
print("Telling my_object to keep refreshing... Use Ctrl-C to stop.")
while True:
my_object.refresh()
my_object.tidy_away()
if __name__ == "__main__":
run()
Очевидно, что недостатки этого метода:
-
tidy_away()
метод никогда не вызывается. - Я не могу себе представить, что когда-либо будет хорошей практикой предложить пользователю убить программу вручную.
Но что может быть лучше?
Я очень удивлен, что не могу найти вопрос, похожий на этот - для Python - в Stack Overflow. Опять же, вполне возможно, что я просто неправильно использую функцию поиска! Рад, что этот вопрос помечен как повторяющийся, если он указывает мне на решение.