在Python中设置枚举最简洁的方法是什么?

这个问题在这里已经有了答案:

  • 我如何在Python中表示'Enum'? 43个答案

  • 在python 3.4(docs)中添加了Enums。 详情请参阅PEP 0435。

    如果您使用的是Python 2.x,则在pypi上存在一个backport。

    pip install enum34
    

    您的使用示例与python enum的功能性API非常相似:

    >>> from enum import Enum
    >>> MyEnum = Enum('MyEnum', 'APPLE BANANA WALRUS')
    >>> MyEnum.BANANA
    <MyEnum.BANANA: 2>
    

    但是,这是一个更典型的用法示例:

    class MyEnum(Enum):
        apple = 1
        banana = 2
        walrus = 3
    

    如果你需要枚举实例来比较等于整数,你也可以使用IntEnum ,但我不建议这样做,除非有充分的理由需要这种行为。


    你可以使用这个。 虽然稍长,但更具可读性和灵活性。

    from enum import Enum
    class Fruits(Enum):
        APPLE = 1
        BANANA = 2
        WALRUS = 3
    

    编辑:Python 3.4


    使用枚举

    In [4]: list(enumerate(('APPLE', 'BANANA', 'WALRUS'),1))
    Out[4]: [(1, 'APPLE'), (2, 'BANANA'), (3, 'WALRUS')]
    

    noob的回答应该是这样的

    In [13]: from enum import Enum
    
    In [14]: Fruit=Enum('Fruit', 'APPLE BANANA WALRUS')
    

    枚举值不同于整数。

    In [15]: Fruit.APPLE
    Out[15]: <Fruit.APPLE: 1>
    
    In [16]: Fruit.BANANA
    Out[16]: <Fruit.BANANA: 2>
    
    In [17]: Fruit.WALRUS
    Out[17]: <Fruit.WALRUS: 3>
    

    在你的问题中使用范围是一个更好的选择。

    In [18]: APPLE,BANANA,WALRUS=range(1,4)
    
    链接地址: http://www.djcxy.com/p/91737.html

    上一篇: What's the cleanest way to set up an enumeration in Python?

    下一篇: pythonic replacement for enums