Python Glossary English

Python 3.4+enumпонятие

enum.IntEnum

виды enum

Перечисление, члены которого — ещё и int: их можно сравнивать с числами и использовать в арифметике.

Синтаксис

class C(enum.IntEnum): ...

Плата за удобство — потеря типовой строгости: член равен обычному числу и любому члену другого IntEnum с тем же значением, поэтому перепутанные перечисления сравниваются молча и без ошибки. С Python 3.11 str() и f-строки печатают у IntEnum голое число, а не Color.RED, — при переезде на новую версию логи и сообщения незаметно меняются. Брать IntEnum стоит ради совместимости с кодом и API, которые ждут int; для внутренней логики обычный Enum безопаснее.

Примеры

import enum
class Color(enum.IntEnum):
    RED = 1
    GREEN = 2
print(Color.RED == 1)        # → True
print(int(Color.GREEN) + 1)  # → 3

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности