Руководство по созданию классов и экземпляров Enum в Python ⇐ Python
-
Гость
Руководство по созданию классов и экземпляров Enum в Python
Я объявляю класс в Python, в котором значение одного атрибута экземпляра будет ограничено членами Enum. Я достигаю этого с помощью пакета pydantic. Поскольку члены перечисления предоставляются пользователем в списке enum_members внутри файла конфигурации, мне нужен динамический подход для создания Enum, и я не могу жестко запрограммировать его члены. Я понимаю, что правильный подход заключается в следующем:
из перечисления import Enum MyEnum = Enum('MyEnum', enum_members) Однако это не только определяет класс Enum с именем MyEnum, но также создает экземпляр этого класса, который также называется MyEnum. Есть ли способ создать класс самостоятельно? Если я напишу:
Enum('MyEnum', enum_members) Я не получаю ошибок, но больше не могу использовать MyEnum. Удивительно, но я тоже могу написать:
MyEnumNew = Enum('MyEnum', enum_members) и я могу использовать MyEnumNew.
Какова цель строкового аргумента в Enum(...)?
Я объявляю класс в Python, в котором значение одного атрибута экземпляра будет ограничено членами Enum. Я достигаю этого с помощью пакета pydantic. Поскольку члены перечисления предоставляются пользователем в списке enum_members внутри файла конфигурации, мне нужен динамический подход для создания Enum, и я не могу жестко запрограммировать его члены. Я понимаю, что правильный подход заключается в следующем:
из перечисления import Enum MyEnum = Enum('MyEnum', enum_members) Однако это не только определяет класс Enum с именем MyEnum, но также создает экземпляр этого класса, который также называется MyEnum. Есть ли способ создать класс самостоятельно? Если я напишу:
Enum('MyEnum', enum_members) Я не получаю ошибок, но больше не могу использовать MyEnum. Удивительно, но я тоже могу написать:
MyEnumNew = Enum('MyEnum', enum_members) и я могу использовать MyEnumNew.
Какова цель строкового аргумента в Enum(...)?
Мобильная версия