Параметризованные перечисления в PythonPython

Программы на Python
Anonymous
Параметризованные перечисления в Python

Сообщение Anonymous »

В Python я хочу иметь структуру данных, подобную перечислению, которую можно было бы использовать как перечисление Option в Rust: перечисление имеет параметризованный элемент и непараметризованный элемент, например

Код: Выделить всё

enum MyType {
A,
B(T),
}
позволит мне использовать MyType.A, MyType.B(1) и MyType.B(2).
Каков наиболее элегантный способ добиться такого поведения в Python? Пока что моим единственным решением было бы использование подклассов A, B абстрактного класса MyType. Но недостатком является то, что это требует от меня проверки экземпляра вместо простого использования is.
Мой конкретный вариант использования следующий: мои данные могут быть реплицированы в нескольких процессах. или осколки. Если он осколочный, мне нужно количество осколков. Моя функция будет обрабатывать данные в зависимости от того, реплицируются они или сегментируются.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-python

Вернуться в «Python»