2016-06-10 127 views
0

有没有办法让C++像枚举类型一样在Python中?例如,在C++中,我可以这样做:python是否支持枚举类型?

enum Foo { 
    bar, 
    foobar, 
    blah 
}; 

并将它们用作全局常量。 Python中是否有类似的东西?

回答

0

Python3.4 +支持enum模块中的各种类型的枚举。显然它与CC++中的枚举类型并不完全相同,但它的用途相同。如果你被困在一个老版本的python中,there's a 3rd party backport available on pypi

基本用法是这样的:

class Foo(enum.Enum): 
    bar = 1 
    foobar = 2 
    blah = 3 
1

From the Docs: 枚举使用类语法,这使得它们很容易读取和写入创建。 Functional API中介绍了另一种创建方法。要定义一个枚举,子类枚举如下:

>>> 
>>> from enum import Enum 
>>> class Color(Enum): 
...  red = 1 
...  green = 2 
...  blue = 3 
+0

有没有办法做到这一点没有等号?你必须做“= 2”吗? – Kyle