Я пытаюсь определить модуль 'util' для моего проекта, где основной утилитой является функция 'display windows' (в данном случае opencv):
def display_windows(windows_to_display, with_text=False):
for window_tag, window in windows_to_display:
cv2.imshow(window_tag, window)
В дополнение к Основа c 'дисплей', я хочу иметь несколько опций, скажем
Добавить текст в окно (cv2.putText ()
Подождите после отображения windows (cv2.waitKey ())
- Уничтожить windows (cv2.destroyAll Windows ()) et c
Мне интересно, как подойти к этому, один вариант - добавить несколько логических значений со значениями по умолчанию, а затем получить что-то вроде:
def display_windows(windows_to_display, with_text=False, with_wait=False, destroy_first=False):
if destroy_first:
cv2.destroyAllWindows()
for window_tag, window in windows_to_display:
if with_text:
cv2.putText(window, 'text', ...)
cv2.imshow(window_tag, window)
if with_wait:
cv2.waitKey(0)
В качестве альтернативы, я мог бы объявить несколько функций, используя «base» 'display windows', а затем добавить, скажем:
def display_windows_and_wait(self, windows_to_display, with_text=False, destroy_first=False):
display_windows(windows_to_display, with_text)
cv2.waitKey(0)
et c.
Я не совсем доволен ни одним из вариантов; переходя к логическому подходу, я не большой поклонник того, чтобы:
display_windows(windows, True, True, True)
разбросано по кругу, поскольку это не очень информативно.
При использовании подхода с несколькими функциями, ну, не уверен, что Это действительно помогает.
Есть мысли о том, какой подход улучшил читабельность? Или еще лучше, есть ли лучший способ подойти к этому вопросу?
Большое спасибо