Я работаю с IronPython 2.7.9 и установил enums
с pip (ipy -X:Frames -m pip install --user enum
). Поэтому я ожидаю, что перечисления будут работать .
В некоторой степени они делают:
S:\>ipy
IronPython 2.7.9 (2.7.9.0) on .NET 4.0.30319.42000 (64-bit)
Type "help", "copyright", "credits" or "license" for more information.
>>> from enum import Enum
>>>
>>> class Shake(Enum):
... vanilla = 7
... chocolate = 4
... cookies = 9
... mint = 3
...
>>> Shake.vanilla
7
… но не тогда, когда я пытаюсь перебрать их значения:
>>> for shake in Shake:
... print shake
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: expected Array[Type], got int
Я что-то неправильно понимаю? Действительно ли перечисления Python несовместимы с IronPython?
В качестве альтернативы я открыт для использования перечислений .Net, но документация полностью зачаточна . Кто-нибудь может указать на подробные документы о перечислениях в IronPython?