A proposito di Python Enums
Come affermato in precedenza, gli enum sono oggetti con valori costanti. Hanno nomi simbolici o rappresentativi legati ai rispettivi valori. Sono in un modo simile ad altre variabili Python, ma sono dotati di alcune caratteristiche uniche come oggetti e raggruppamento. In Python, gli enum sono sempre rappresentati usando caratteri maiuscole per indicare che hanno valori costanti. Gli enum sono particolarmente utili nei casi in cui si dispone di una gamma predefinita di valori possibili e devi scegliere e fare riferimento a scelte limitate nella logica del programma. L'uso di Enums in Python può essere meglio compreso attraverso esempi. Alcuni di loro sono spiegati di seguito.
Creazione di enum
Puoi creare enum costruendo una nuova classe che eredita la classe enum stessa. Dai un'occhiata al campione del codice di seguito:
da enum import enumLa prima istruzione importa la classe Enum dal modulo Enum. Successivamente una nuova classe chiamata "Color" è costruita ereditando la classe Enum. Alcune variabili (membri enum) vengono quindi create con valori costanti. Queste variabili rappresentano cinque possibili scelte. Le prossime dichiarazioni di stampa mostrano come è possibile accedere a questi enum, ai loro nomi e valori. Queste dichiarazioni sono autoesplicative. Per accedere a una possibile scelta enum, è possibile utilizzare la notazione punto o fornire un valore noto come argomento alla classe. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:
Colore.GIALLOCome puoi vedere nell'output, ci sono vari modi in cui puoi accedere ai membri ENUM. Si noti che la funzione di stampa di chiamata su un enum restituirà il suo modulo di stringa leggibile umano e non il suo valore. Quindi riferendosi al colore.Il giallo restituirà il colore.Giallo e non 1.
Iteratura attraverso Enums
È possibile iterare attraverso un oggetto di tipo enum e ottenere i suoi membri utilizzando le dichiarazioni di loop.
da enum import enumUtilizzando la variabile "C", è possibile accedere a ogni membro dell'oggetto TIPO ENUM COLORE. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output.
Giallo 1Il nome dei membri enum deve essere univoco ma sono consentiti valori duplicati
Non è possibile creare due membri ENUM con lo stesso nome, ma i loro valori non hanno tali restrizioni. Il seguente campione di codice lancerà un errore in quanto vi sono due membri enum con gli stessi nomi.
da enum import enumDopo aver eseguito il campione di codice sopra, è necessario ottenere un errore simile a questo:
File "/usr/lib/python3.9/enum.py ", riga 133, in __setitem__Come puoi vedere nell'output, i nomi duplicati non sono consentiti per i membri ENUM. Tuttavia, il seguente codice è valido in cui due membri ENUM hanno gli stessi valori.
da enum import enumSe vuoi anche forzare i valori unici per i membri ENUM insieme ai loro nomi, puoi usare un decoratore "unico" per prevenire valori duplicati.
da enum import enum, unicoIl decoratore "@Unique" costringe il tipo di tipo ENUM a lanciare un errore quando ci sono valori duplicati assegnati ai membri ENUM. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:
File "/usr/lib/python3.9/enum.py ", linea 989, in unicoAuto Assegna i valori ai membri ENUM
Se i valori dei membri ENUM non contano, è possibile utilizzare il metodo "Auto" disponibile nel modulo Enum per assegnare automaticamente numeri sequenziali ai membri ENUM.
da enum import enum, autoCome puoi vedere nel campione di codice Aboved, invece di assegnare esplicitamente alcuni valori ai membri ENUM, la funzione automatica è stata chiamata durante la creazione di ciascun membro. Il metodo automatico assegna sempre 1 come primo valore. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:
Giallo 1Conclusione
Enums digita oggetti in python consente di creare variabili di stile costante con nomi univoci. Queste variabili, solitamente chiamate membri enum, possono essere rappresentate da stringhe leggibili umane. Gli enum sono particolarmente utili quando si desidera scegliere una o più scelte da un gruppo di opzioni limitate.