Enum in Python

Muhammad Waiz Khan 14 aprile 2021
  1. Enum in Python usando il modulo enum
  2. Implementa Enum in Python usando una sintassi di classe regolare
Enum in Python

In questo tutorial, esamineremo diversi metodi di utilizzo o implementazione di enum in Python. L’enum o enumerazione è un tipo speciale di classe che rappresenta un insieme di costanti denominate di tipo numerico. Ogni costante nominata nel tipo enum ha il proprio valore intero, che dipende dalla posizione della costante denominata dell’insieme.

Il tipo enum viene utilizzato per assegnare i nomi delle costanti all’insieme di valori interi in molti linguaggi di programmazione come C#, Java, Go, C e C++, ecc. Possiamo implementare e utilizzare il tipo di enumerazione in Python utilizzando i metodi che sono spiegati di seguito.

Enum in Python usando il modulo enum

Il modulo enum di Python ha quattro classi che sono Enum, IntEnum, Flag e IntFlag, per ulteriori dettagli sul modulo e le classi, questo link può essere visitato.

Nella classe Enum, il valore di ciascuna costante del nome è un numero intero per impostazione predefinita, ma possiamo anche passare tipi di dati come stringa o float, ecc. I valori delle costanti del nome della classe IntEnum, come suggerisce il nome, possono essere solo numeri interi.

Possiamo creare e usare l’enumerazione in Python usando le classi Enum e IntEnum. I seguenti codici di esempio dimostrano come utilizzare queste classi per implementare diversi tipi di enumeratori in Python.

Enumeratore semplice:

from enum import Enum

Names = Enum("Names", ["Waiz", "Tom", "Sara", "Lee"])

Possiamo usare l’iteratore della coppia (nome, valore) per salvare valori specifici con ciascun nome, che rappresentano id o segni, ecc., Delle costanti del nome. Possiamo accedere al valore della costante del nome e al nome utilizzando Enum.nameconstant.value per accedere ai valori e Enum.nameconstant.name per accedere ai nomi.

Possiamo farlo in Python usando il seguente codice di esempio.

from enum import Enum

Names = Enum("Names", [("Waiz", 8), ("Tom", 5), ("Sara", 7), ("Lee", 6)])

print(Names.Sara.value)
print(Names.Waiz.name)

Produzione:

7
Waiz

Un altro modo per creare un enumeratore è utilizzare la sintassi della classe e quindi passare Enum o IntEnum come mostrato nel codice di esempio seguente:

from enum import IntEnum


class Student(IntEnum):
    Waiz = 1
    Ali = 2
    John = 3
    Lee = 4


print(Student.Lee.value)

Produzione:

4

Implementa Enum in Python usando una sintassi di classe regolare

Nelle versioni di Python precedenti alla 2.4, il modulo Enum non è disponibile, in questo caso possiamo implementare la nostra class dell’enumeratore Enum usando la sintassi della classe.

Possiamo implementare la classe enumeratore semplice con i valori predefiniti a partire da 1 come nella classe Enum del modulo enum, come dimostrato nel codice di esempio seguente:

class Zoo:
    Lion, Tiger, Cheetah, Leopard = range(1, 5)


print Zoo.Lion

Produzione:

1