Я начинающий программист Python, работающий над настройкой видеосервера Flask на основе этого руководства .Часть кода, с которой у меня проблема, используется для инициализации веб-камеры компьютера и вывода кадров:
class Camera(object):
thread = None # background thread that reads frames from camera
frame = None # current frame is stored here by background thread
last_access = 0 # time of last client access to the camera
start_time = 0 # time at which the camera is started
def __init__(self):
"""Start the background camera thread if it isn't running yet."""
...
def get_frame(self):
"""Return the current camera frame."""
...
@staticmethod
def frames():
""""Generator that returns frames from the camera."""
...
@classmethod
def _thread(cls):
"""Camera background thread."""
...
Для меня не имеет смысла использовать класс для этого, поскольку должен быть только одинэкземпляр объекта Camera.Из-за этого каждый раз, когда к серверу делается запрос, создается новый объект без причины.
Я рассмотрел возможные способы его рефакторинга.Что я нашел до сих пор:
- Используйте одноэлементный класс, но это не кажется рекомендуемым в Python
- Поместите все в отдельный модуль.Тогда все переменные класса станут глобальными переменными, и это плохо из того, что я прочитал