Python中的C ++枚举实例

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

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

  • 这是我发现的:

    我如何在Python中表示'Enum'?

    TL;博士:

    class Animal:
    DOG = 1
    CAT = 2
    
    x = Animal.DOG
    

    在Python 3.4之前,Pythonic的方法就是使用整数:

    MODE_UPPERCASE, MODE_LOWERCASE, MODE_PUNCTUATION = range(3)
    
    mode = MODE_UPPERCASE
    
    switch_mapping = {
        MODE_UPPERCASE: handle_upper,
        # etc.
    }
    

    如果您使用的是3.4或更新版本,则可以使用新的enum库:

    from enum import Enum
    
    Mode = Enum('Mode', 'uppercase lowercase punctuation')
    mode = Mode.uppercase
    
    switch_mapping = {
        Mode.uppercase: handle_upper,
        # etc.
    }
    

    枚举值在这种情况下仍然是整数(因为我在此使用的功能API自动分配1中的整数)。


    在python 3中,你必须这样做:

    from enum import Enum
    
    class modeType(Enum):
        UPPERCASE       =1
        LOWERCASE       =2
        PUNCTUATION =3
    

    请参阅官方网站:https://docs.python.org/3/library/enum.html

    链接地址: http://www.djcxy.com/p/91743.html

    上一篇: C++ enum instance equivalent in Python

    下一篇: using function attributes as return values