Перебор перечислений в Python 2 - PullRequest
2 голосов
/ 07 октября 2019

Я работаю с 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?

1 Ответ

1 голос
/ 07 октября 2019

Пакет enum не соответствует этому API. Вам нужен бэкпорт Python 3, enum34.

...