Хотя я полностью согласен с тем, что использование dict
для Numbers
будет проще и понятнее, но покажет вам способ Enum
, поскольку в вашем классе используются магические числа и своего рода действительный вариант использования перечислений.
Аналогичная реализация с использованием Enum
будет:
from enum import Enum
class Numbers(Enum):
One = 1
Two = 2
Three = 3
Four = 4
Five = 5
Тогда вы можете использовать getattr
и Numbers.<attr>.value
, чтобы получить постоянные числа:
In [592]: alist = ["Four", "Three", "Five", "One", "Two"]
In [593]: [getattr(Numbers, n).value for n in alist]
Out[593]: [4, 3, 5, 1, 2]
Редактировать на основании комментария:
Если вы хотите получить имена из списка номеров:
In [952]: l = [4, 3, 5, 1, 2]
In [953]: [Numbers(num).name for num in l]
Out[953]: ['Four', 'Three', 'Five', 'One', 'Two']