相关疑难解决方法(0)

Flag枚举中所有值的表示

我希望在我的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或更高版本有关.

python enums python-3.x python-3.6

14
推荐指数
3
解决办法
1281
查看次数

标签 统计

enums ×1

python ×1

python-3.6 ×1

python-3.x ×1