请听题:
from enum import Enum
class Build(Enum):
debug = 200,
build = 400,
product = 600
测试一下:
def test_1():
dd = Build(600)
if dd == Build.product:
print('OK')
会通过吗?会。但是下面的:
def test_1():
dd = Build(200)
if dd == Build.debug:
print('OK')
会通过吗?不会。
为什么,请看大屏幕:

也就是说第一个和第二个枚举值并不是int类型,而是tuple类型。当然就不能如期转化啦。
你看看这个逗号是不是很可恶,因为编译不会报错。所以,正确的定义形式是:
from enum import Enum
class Build(Enum):
debug = 200
build = 400
product = 600
为何不小心加上了逗号?因为受Java枚举定义影响的缘故。