我希望在我的python Flags枚举中有一个"ALL"标志
myenum.EVERY_MEMBER & myenum.ALL == myenum.EVERY_MEMBER
Run Code Online (Sandbox Code Playgroud)
是的.我目前有:
from enum import Flag, auto
class RefreshFlags(Flag):
NONE = 0
EVENTS = auto()
RESOURCES = auto()
BUILDINGS = auto()
DEFENSES = auto()
.....
Run Code Online (Sandbox Code Playgroud)
因为这个枚举可能会在任何开发状态下增长,我希望有类似的东西
@property
def ALL(self):
retval = self.NONE
for member in self.__members__.values():
retval |= member
return retval
Run Code Online (Sandbox Code Playgroud)
这不起作用:
RefreshFlags.EVENTS & RefreshFlags.ALL
TypeError: unsupported operand type(s) for &: 'RefreshFlags' and 'property'
Run Code Online (Sandbox Code Playgroud)
请注意,此问题目前仅与python 3.6或更高版本有关.