Python возвращает int из класса Enum

#python #enums

#python #перечисления

Вопрос:

Цель состоит в том, чтобы использовать Enum класс для обеспечения предсказуемого ввода определенного количества параметров.

Я ожидал получить целые числа в качестве выходных данных, однако я получу class.attrib , если я его распечатаю.

Как я могу получить целое число вместо этого?

 from enum import Enum

class Stiffness(Enum):
    FREE = 0
    RIGID = 1
    FLEXIBLE = 2

print(Stiffness.FLEXIBLE)
 

Вывод: Stiffness.FLEXIBLE

Ожидаемый результат: 2

Ответ №1:

Просто выведите value :

 print(Stiffness.FLEXIBLE.value)
# 2
 

Вы можете взглянуть на часть документации enum об атрибутах членов enum.

Ответ №2:

Вы можете использовать IntEnum вместо Enum .

Это позволяет использовать Stiffness.FLEXIBLE взаимозаменяемо с целым числом 2, например, вы можете передать его функции, которая ожидает целое число.