@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()


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

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

Войти через центр авторизации
Похожие вопросы
Фаст Софт Санкт-Петербург
от 150 000 до 180 000 ₽
от 250 000 ₽
Sibdev Красноярск
от 120 000 до 180 000 ₽
27 мар. 2023, в 22:07
1500 руб./за проект
27 мар. 2023, в 21:53
5000 руб./за проект
27 мар. 2023, в 21:02
3000 руб./за проект