Articles of enums

Python enum evita la asignación de atributos no válidos

Cuando uso la API funcional para crear una enumeración, recupero un objeto de enumeración que permite una asignación arbitraria (es decir, tiene un __dict__): e = enum.Enum(‘Things’,[(‘foo’,1),(‘bar’,2)]) e.baz = 3 El elemento no aparece en la lista: list(e) [, ] Pero todavía puede ser referenciado: if thing == e.baz: … Ahora, aunque parece poco probable […]

Python enum – obteniendo el valor de enum en la conversión de cadenas

He definido la siguiente enumeración from enum import Enum class D(Enum): x = 1 y = 2 print(Dx) ahora el valor impreso es Dx en lugar de eso quería que se imprimiera el valor de la enumeración 1 ¿Qué se puede hacer para lograr esta funcionalidad?

Iterar python Enum en orden de definición

Estoy usando la funcionalidad Enum de backported de python 3.4 con python 2.7: > python –version Python 2.7.6 > pip install enum34 # Installs version 1.0… De acuerdo con la documentación para Enums en python 3 ( https://docs.python.org/3/library/enum.html#creating-an-enum ), “Las enumeraciones admiten la iteración, en el orden de definición “. Sin embargo, la iteración no […]

Usando un IntEnum como el tipo en un ctypes.Structure._fields_

Me gustaría hacer uno de los campos de mis ctypes.Structure an enum. Esta publicación sugiere agregar un from_param from_param a la clase enum, pero afirma que esto no es suficiente para un ctypes.Structure personalizado. También he intentado heredar de enum.IntEnum y ctypes.c_uint pero eso resulta en un conflicto de metaclase. Aquí es aproximadamente lo que […]

ImportError: no hay un módulo llamado enum en python 2.7

Estoy ejecutando un código con Python 2.7. Y me sale “ImportError: No hay módulo llamado enum”. Instalé la enumeración con “pip install enum” pero el error sigue apareciendo. ¿¿Qué debo hacer??

Boost Python 1.48 falla al exportar enumeración de 32 bits

¿Las versiones más recientes de Boost Python son compatibles con la exportación de enumeraciones de 32 bits completas desde C ++? Estoy usando 1.48 y puedo exportar hasta 30 bits, pero falla cada vez que se debe a “Ubicación de lectura de infracción de acceso 0x00000001” cuando bash exportar un número de 32 bits. Al […]

Comprobación de tipos de enumeración válidos de protobufs

En mi archivo protobuf llamado skill.proto, tengo: message Cooking { enum VegeType { CAULIFLOWER = 0; CUCUMBER = 1; TOMATO = 2 } required VegeType type = 1; } En otro archivo (por ejemplo, nombre.py) quiero verificar que la enumeración dentro del archivo sea un tipo válido #if (myCookingStyle.type != skill_pb2.Cooking.VegeTypes): print “Error: invalid cooking […]

Enum de Python a través de módulos

¿Por qué en Python 3 la igualdad de enumeración no se puede verificar correctamente a través de los límites de los módulos si la enumeración se ha definido en el módulo principal? Aquí hay un ejemplo: móduloA.py: #!/usr/bin/python3 import moduleB from enum import Enum, unique @unique class MyEnum(Enum): A = 1 B = 2 # […]

¿Cómo extender Python Enum?

¿Cuál es la mejor práctica para extender el tipo Enum en Python 3.4 y hay incluso una posibilidad para hacer esto? Por ejemplo: from enum import Enum class EventStatus(Enum): success = 0 failure = 1 class BookingStatus(EventStatus): duplicate = 2 unknown = 3 Traceback (most recent call last): … TypeError: Cannot extend enumerations Actualmente no […]

¿Cuándo debo subclasificar EnumMeta en lugar de Enum?

En este artículo, Nick Coghlan habla sobre algunas de las decisiones de diseño que se EnumMeta tipo de EnumMeta PEP 435 , y sobre cómo se puede subclasificar a EnumMeta para proporcionar una experiencia de Enum diferente. Sin embargo, el consejo que doy (y soy el autor principal de Enum stdlib) sobre el uso de […]