Maison > développement back-end > Tutoriel Python > Comment puis-je représenter des énumérations en Python ?

Comment puis-je représenter des énumérations en Python ?

DDD
Libérer: 2025-01-04 20:43:41
original
324 Les gens l'ont consulté

How Can I Represent Enums in Python?

Représenter une énumération en Python

Les énumérations sont un aspect crucial des pratiques de programmation modernes, permettant la représentation d'ensembles de valeurs finis et fixes. En Python, plusieurs approches peuvent être utilisées pour représenter les énumérations, offrant aux développeurs flexibilité et compatibilité avec différentes versions de Python.

Énumérations de bibliothèque standard (Python 3.4)

Avec l'avènement de Python 3.4, une implémentation d'énumération standardisée a été introduite. En faisant référence au PEP 435, vous pouvez exploiter la classe Enum dans le module enum intégré. Cette approche s'aligne sur la philosophie de concision et de facilité d'utilisation de Python.

Exemple :

from enum import Enum

Animal = Enum('Animal', 'ant bee cat dog')

print(Animal.ant)  # Output: <Animal.ant: 1>
print(Animal['ant'].name)  # Output: 'ant'
Copier après la connexion

Bibliothèques tierces

Pour les versions Python antérieures à 3.4, les bibliothèques tierces offrent des solutions fiables pour les implémentations d'énumérations. Deux options populaires sont :

  • enum34 : Rétroporte la classe Python 3.4 Enum vers des versions plus anciennes, fournissant une interface compatible.
  • aenum : Une bibliothèque d'énumérations avancée avec des fonctionnalités supplémentaires, telles que la résolution automatique des noms en valeurs.

Exemple d'utilisation d'enum34 :

from enum34 import Enum

Animal = Enum('Animal', 'ant bee cat dog')

print(Animal.ant)  # Output: <Animal.ant: 1>
print(Animal.ant.name)  # Output: 'ant'
Copier après la connexion

Implémentation manuelle d'énumération (pré-Python 3.4)

Avant l'inclusion des énumérations dans Python 3.4, les développeurs utilisaient des approches personnalisées. Une méthode courante consistait à créer une classe avec des décorateurs @property pour définir les valeurs de l'énumération.

Exemple :

class Animal:
    ant = 1
    bee = 2
    cat = 3
    dog = 4

print(Animal.ant)  # Output: 1
print(Animal.cat.name)  # Error: 'int' object has no attribute 'name'
Copier après la connexion

Cette approche n'a pas la sécurité et la commodité des énumérations standardisées. mais reste une option pour une compatibilité ascendante.

Saisie des alias (Python 3.8 )

Les alias de frappe récemment introduits offrent une alternative au comportement de type énumération. Le type Littéral vous permet de spécifier un ensemble de valeurs fixes.

Exemple :

from typing import Literal

Animal: Literal['ant', 'bee', 'cat', 'dog'] = 'ant'
Copier après la connexion

Cependant, cette approche ne dispose pas des fonctionnalités robustes des énumérations traditionnelles, telles que Résolution automatique nom-valeur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal