Безопасно ли сравнивать перечисляемые объекты? - PullRequest
0 голосов
/ 04 октября 2019

У меня есть модуль, который определяет перечисление таким образом:

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 Ответ

3 голосов
/ 04 октября 2019

Это достаточно безопасно , хотя кто-то всегда может реализовать метод __eq__ объекта для возврата того, что он хочет .

Но, учитывая, что enum это синглтоны, вы можете безопасно использовать is:

if return_a_value() is MyEnum.SECOND:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...