Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
Tutorialspoint

1 Answer
Jennifer Nicholas

Enumeration is a set of identifiers (members) given unique and constant values. Within an enumeration, the members can be compared by identity. Enumeration object can also terated over.

The enum module defines following classes

Enum : Base class for creating enumerated constants.

IntEnum : Base class for creating enumerated constants that are also subclasses of int.

Enumerations are created using the class syntax

#enumexample.py
from enum import Enum
class langs(Enum):
Python = 1
Java = 2
Cpp = 3
Ruby = 4

Enumeration members have human readable string representation and repr representation.

>>> from enumexample import langs
>>> print (langs.Python)
langs.Python
>>> print (repr(langs.Python))
<langs.Python: 1>

Each enum member has name and value properties.

>>> x = langs.Python
>>> x.name
'Python'
>>> x.value
1

You can use a loop to iterate over all members.

>>> for lang in langs:
print (lang.name, lang.value)
Python 1
Java 2
Cpp 3
Ruby 4

Members can be accessed with the help of value or identity

>>> langs(3)
<langs.Cpp: 3>
>>> langs['Java']
<langs.Java: 2>

Identity operators is and is not can be used to compare members of enum.

>>> x = langs(2)
>>> y = langs(4)
>>> x is y
False

Having two enum members with the same name is invalid. However, two enum members are allowed to have the same value. Change enumexample.py to following:

from enum import Enum
class langs(Enum):
Python = 1
Java = 2
Cpp = 3
Ruby = 4
Cplusplus = 3
>>> from enumexample import langs
>>> langs.Cpp
<langs.Cpp: 3>
>>> langs.Cplusplus
<langs.Cpp: 3>
>>> langs(3)
<langs.Cpp: 3>

By default, enumerations can have multiple names as aliases for the same value. To ensure unique value, use @enum.unique A class decorator specifically for enumerations.

Advertisements

We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.