RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону

Как реализовать метод stop()?

from pygame.mixer import Sound, init
from time import sleep

init()

class metronome(object):
	def bpm_to_interval(self,bpm):
		return 60/bpm
		
	def start(self, bpm):
		sound = Sound("sound.mp3")
		while True:
			sound.play()
			sleep(metronome().bpm_to_interval(bpm))

			def stop(self):
				break # SyntaxError: 'break' outside loop


m = metronome().start(60)
sleep(5)
m.stop()


Как сделать так, чтобы цикл выполнялся как-бы "в фоне" и его можно было остановить?
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
@akonovalov
Программист на компьютере
Скорее всего, вам подойдёт реализация с помощью "тредов" (они же "потоки", модуль Threading).
Это будет действительно "в фоне" и вы сможете послать сообщение (через Queue, например) в этот поток, которое затем обработать внутри бесконечного цикла.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы