Я хотел бы иметь флаг "ALL" в моем перечислении флагов python, для которого
myenum.EVERY_MEMBER & myenum.ALL == myenum.EVERY_MEMBER
выполняется. В настоящее время у меня есть:
from enum import Flag, auto
class RefreshFlags(Flag):
NONE = 0
EVENTS = auto()
RESOURCES = auto()
BUILDINGS = auto()
DEFENSES = auto()
.....
Поскольку это перечисление может расти в любом состоянии развития, я хотел бы иметь что-то вроде
@property
def ALL(self):
retval = self.NONE
for member in self.__members__.values():
retval |= member
return retval
Это не работает:
RefreshFlags.EVENTS & RefreshFlags.ALL
TypeError: unsupported operand type(s) for &: 'RefreshFlags' and 'property'
Обратите внимание, что этот вопрос в настоящее время относится только к python 3.6 или новее.