How to convert int to Enum in python?

前端 未结 3 1839
独厮守ぢ
独厮守ぢ 2020-12-29 00:31

Using the new Enum feature (via backport enum34) with python 2.7.6.

Given the following definition, how can I convert an int to the corresponding Enum value?

3条回答
  •  温柔的废话
    2020-12-29 01:25

    You 'call' the Enum class:

    Fruit(5)
    

    to turn 5 into Fruit.Orange:

    >>> from enum import Enum
    >>> class Fruit(Enum):
    ...     Apple = 4
    ...     Orange = 5
    ...     Pear = 6
    ... 
    >>> Fruit(5)
    
    

    From the Programmatic access to enumeration members and their attributes section of the documentation:

    Sometimes it’s useful to access members in enumerations programmatically (i.e. situations where Color.red won’t do because the exact color is not known at program-writing time). Enum allows such access:

    >>> Color(1)
    
    >>> Color(3)
    
    

    In a related note: to map a string value containing the name of an enum member, use subscription:

    >>> s = 'Apple'
    >>> Fruit[s]
    
    

提交回复
热议问题