我有一个以这种方式定义枚举的模块:
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
字段以进行比较?
答案 0 :(得分:3)
这是足够安全的,但是,有人总是可以实现对象的__eq__
方法来返回他们想要的任何东西。
但是考虑到enum
是单身人士,您实际上可以安全地使用is
:
if return_a_value() is MyEnum.SECOND: