比较枚举对象是否安全?

时间:2019-10-04 10:38:49

标签: python python-3.x enums

我有一个以这种方式定义枚举的模块:

import enum
class MyEnum(enum.IntEnum):
  FIRST = 1
  SECOND = 2

和一个返回以下内容的函数:

def return_a_value():
  my_enum = MyEnum(2)
  return my_enum

比较返回值时,编写这样的代码是否安全:

if return_a_value() == MyEnum.SECOND:

还是我应该访问value字段以进行比较?

1 个答案:

答案 0 :(得分:3)

这是足够安全的,但是,有人总是可以实现对象的__eq__方法来返回他们想要的任何东西

但是考虑到enum是单身人士,您实际上可以安全地使用is

if return_a_value() is MyEnum.SECOND: