将字符串列表转换为“IntFlag”`

2024-10-01 00:14:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一堆IntFlag类型,我希望经常将配置文件中的字符串列表转换为这些类型的成员。我目前的计划是扩展IntFlag

class BetterIntFlag(IntFlag):
    @classmethod
    def parse(cls, items):
        value = cls(0)
        for item in items:
            value |= cls[item]
        return value

我对这个解决方案很满意,但我忍不住觉得我一定缺少一个简洁的内置方法来实现这一点。你知道吗

我用的是3.3的后端口枚举。你知道吗


Tags: 字符串类型列表valuedef配置文件items成员
1条回答
网友
1楼 · 发布于 2024-10-01 00:14:27

如果您所说的backport是指aenum1,它是内置的:

from aenum import IntFlag

class Color(IntFlag):
  red = 1
  green = 2
  blue = 4

使用中:

 > Color['red|blue']
<Color.blue|red: 5>

 > items = ['red', 'blue']
 > Color['|'.join(items)]
<Color.blue|red: 5>

披露:我是Python stdlib ^{}^{} backportAdvanced Enumeration (^{})库的作者。你知道吗

相关问题 更多 >