на примере списков с двумя элементами все работает вполне ожидаемо:
l1 = [True, True] l2 = [True, False] print(l1 and l2 , l1 or l2) >>> [True, False] [True, True]
но при реализации со списками размером по 10 элементов в каждом возникли проблемы
print([True, True, True, False, True, True, True, True, False, False] and [True, True, True, True, True, True, True, True, True, True]) >>> [True, True, True, True, True, True, True, True, True, True]
пытался на практике при помощи таких операций запилить систему включения\выключения кнопок пользователю, а именно при помощи наложения маски на текущее (основное) состояние, при помощи простенькой функции приведенной ниже всем управлять, но столкнулся с описанной выше проблемой
def set_controls_state(self, mask): prev = list() # в отдельных случаях надо будет вернуться к прежнему состоянию for x, z in zip(mask, self.controls): # self.controls == список кнопок состоянием которых управляем prev.append(z.isEnabled()) z.setEnabled(x) return prev
эту задачу конечно можно реализовать и кучей if-ов, но учитывая то что сигналов для включения-выключения множество, и часть из них после определенных действий требует возврата строго к прежнему состоянию ,я выбрал такой метод, если кто-то знает более адекватный буду рад любой инфе.