Флаговое перечисление в ООП в Python
Иногда одному объекту нужно сразу
несколько независимых признаков:
читать, писать, выполнять. Для таких
наборов в модуле enum есть
класс Flag.
Сделаем флаги прав доступа к документу работника:
from enum import Flag, auto
class DocAccess(Flag):
READ = auto()
WRITE = auto()
EXECUTE = auto()
Несколько флагов можно объединить
оператором |:
access = DocAccess.READ | DocAccess.WRITE
print(access) # выведет DocAccess.READ|WRITE
Проверим, входит ли отдельный флаг в комбинацию:
print(DocAccess.READ in access) # выведет True
print(DocAccess.EXECUTE in access) # выведет False
Сделайте флаговое перечисление
NotificationChannel с каналами
уведомлений. Соберите комбинацию
из двух флагов и проверьте
наличие одного из них.