Aprendiendo Python (trece) - clase de enumeración

Para algunas clases con significados especiales, el número de objetos instanciados a menudo es fijo. Por ejemplo, si se usa una clase para representar el mes, hay hasta 12 objetos de instancia de esta clase; por otro ejemplo, si una clase se usa para representan la temporada, luego la instancia de esta clase Hay como máximo 4 objetos. Para esta clase especial,  la clase de enumeración Enum se agregó recientemente en Python 3.4. En otras palabras, para estas clases con un número fijo de objetos instanciados, se pueden usar clases de enumeración para definirlos. Si desea definir una clase como una clase de enumeración, solo necesita hacer que herede de la clase Enum en el módulo enum.

P.ej:

from enum import Enum
class Color(Enum):
    # 为序列值指定value值
    red = 1
    green = 2
    blue = 3

En la clase de enumeración Color, rojo, verde y azul son todos miembros de esta clase (pueden entenderse como variables de clase). Tenga en cuenta que cada miembro de la clase de enumeración consta de dos partes, a saber, nombre y valor, donde el valor del atributo de nombre es el nombre de la variable del valor de enumeración (como rojo), y el valor representa el número de serie del valor de enumeración (el número de serie el número suele ser de 1 inicio). La función Enum () acepta 2 parámetros, el primero se usa para especificar el nombre de clase de la clase de enumeración y el segundo parámetro se usa para especificar varios miembros en la clase de enumeración.

Cabe señalar que el valor de cada miembro de la clase de enumeración no se puede modificar fuera de la clase. Además, la clase de enumeración también proporciona un atributo __members__, que es un diccionario que contiene todos los miembros de la clase de enumeración. Al atravesar este atributo, también puede acceder a cada miembro de la clase de enumeración.

Cada miembro de la clase de enumeración de Python debe asegurarse de que el nombre sea diferente entre sí, pero el valor puede ser el mismo.

Supongo que te gusta

Origin blog.csdn.net/qq_35789421/article/details/113645800
Recomendado
Clasificación