【问题标题】:Python's enum equivalent [duplicate]Python的枚举等价物[重复]
【发布时间】:2011-03-15 23:59:08
【问题描述】:

可能重复:
What’s the best way to implement an ‘enum’ in Python?

不同索引名称列表(如 C/C++ 或 Java 中的 Enum)的 Python 习语是什么?

澄清:我希望将值的属性设置为受限范围,例如卡片组Heart, Club, Spade, Diamond。我可以用 0..3 范围内的 int 表示它,但它会允许超出范围的输入(如 15)。

【问题讨论】:

标签: python enums


【解决方案1】:
class Suite(object): pass

class Heart(Suite): pass
class Club(Suite): pass

等等

python 中的类是一个对象。所以你可以写

x=Heart

等等

【讨论】:

    【解决方案2】:

    这是stackoverflow 上非常受欢迎的问题

    编辑

    class Suite(set):
        def __getattr__(self, name):
            if name in self:
                return name
            raise AttributeError
    
    s1 = Suite(['Heart', 'Club', 'Spade', 'Diamond'])
    s1.Heart
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      • 2013-11-04
      • 2019-01-18
      相关资源
      最近更新 更多